第6章宏模塊和LPM函數的應用(CPU)_第1頁
第6章宏模塊和LPM函數的應用(CPU)_第2頁
第6章宏模塊和LPM函數的應用(CPU)_第3頁
第6章宏模塊和LPM函數的應用(CPU)_第4頁
第6章宏模塊和LPM函數的應用(CPU)_第5頁
已閱讀5頁,還剩121頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、FPGA-CPLDFPGA-CPLD原理及應用原理及應用 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用第6章 宏模塊和LPM函數的應用FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用CPUCoreOriginal HardwareContentOriginalSoftwareContentGlue LogicBlueToothControllerIR &RS232Compression& EncryptionEngineDSPCoreSoPCFPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用在FPGA技術的發展過程中,很多優秀的數字系

2、統設計人員積累了大量設計成果。Altera公司對其中一些成果在Altera 器件的結構做了優化設計,使之在Altera特定器件結構中發揮出最佳性能。最終形成了參數化宏功能模塊庫LPM。IP核的概念FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用IP 設計技術 IP 技術是針對可復用的設計而言的,其本質特征是功能模塊的可復用性。 IP 通常滿足以下基本特征:通用性好正確性有100%的保證可移植性好。 IP 核設計的理想目標是即插即用,但就目前來看,離這個目標還很遠。基于標準片上總線(OCB),具有標準接口是IP 發展的方向。FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的

3、應用SoPC最常見的IP核:ARMFPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用IP核的概念FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用IP核的概念 IP 的含義與分類lIP (Intellectual Property )即知識產權。在集成電路設計中,IP 指可以重復使用的具有自主知識產權功能的集成電路設計模塊。基于IP 的SoC 設計具有易于增加新功能和縮短上市時間的顯著特點,是IC 設計當前乃至今后若干年的主流設計方式。l按照設計層次的不同,IP 核可以分為三種:l軟核(Soft Core)l固核(Firm Core)l硬核(Hard Core)。FPG

4、A-CPLD原理及應用 第6章 宏模塊和LPM函數的應用軟核(Soft Core) 軟核只完成RTL 級的行為設計,以HDL的方式提交使用。該HDL描述在邏輯設計上做了一定優化,必須經過仿真驗證,使用者可以用它綜合出正確的門級網表。 軟核不依賴于實現工藝或實現技術,不受實現條件的限制,具有很大的靈活性和可復用性。 軟核為后續設計留有比較大的空間,使用者可以通過修改源碼,完成更具新意的結構設計,生成具有自主版權的新軟核。 由于軟核的載體HDL與實現工藝無關,使用者要負責從描述到版圖轉換的全過程,模塊的可預測性低,設計風險大,使用者在后續設計中仍有發生差錯的可能,這是軟核最主要的缺點。FPGA-C

5、PLD原理及應用 第6章 宏模塊和LPM函數的應用固核(Firm Core) 固核比軟核有更大的設計深度,己完成了門級綜合、時序仿真并經過硬件驗證,以門級網表的形式提交使用。 只要用戶提供相同的單元庫時序參數,一般就可以正確完成物理設計。 固核的缺點是它與實現工藝的相關性和網表的難讀性。前者限制了固核的使用范圍,后者則使得布局布線后發生的時序問題難以排除。FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用硬核(Hard Core) 硬核以IC版圖的形式提交,并經過實際工藝流片驗證。 顯然,硬核強烈地依賴于某一個特定的實現工藝,而且對具體的物理尺寸,物理形態及性能上具有不可更改性。

6、硬核是IP 核的最高形式,同時也是最主要的形式。國際上對硬核的開發和應用都非常重視,特別是近幾年來發展迅速。FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用三種不同形式的IP核 IP核有三種不同的存在形式:HDL語言形式、網表形式和版圖形式。 HDL語言形式是講這種電路單元用HDL語言描述出來,由于直接是HDL代碼,因此可修改性最高,甚至可以在功能上大修改,所以是“軟”的。 而被做成版圖的IP核基本不可修改,只能對應特定的工藝庫,所以是“硬”的。 做成網表的IP從功能上來說基本不可修改,但是沒有和特定的工藝庫綁定,從選擇工藝庫的角度來說是可改的。所以借鑒了“固件”的說法,是一種介

7、于“軟”和“硬”之間的狀態。 LPM模塊的使用FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用知識要點LPM: library of Parameterized Modules參數化的模塊庫,其模塊使用參數和端口信號進參數化的模塊庫,其模塊使用參數和端口信號進行描述,通過設置參數和端口信號,可以實現不同行描述,通過設置參數和端口信號,可以實現不同的功能。其模塊可稱之為參數化模塊或者的功能。其模塊可稱之為參數化模塊或者LPMLPM模塊模塊或者或者LPMLPM宏功能塊。宏功能塊。模塊設置參數:設置大小;參數:設置大小;端口信號設置:設置使用哪些端口信號和信號屬端口信號設置:設置使用哪

8、些端口信號和信號屬性等,其中輸入端口信號有缺省值,也可以自己設性等,其中輸入端口信號有缺省值,也可以自己設置置。LPM功能模塊FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.1 宏功能模塊概述 數據數據類型類型類型類型描描述描述描述類型類型描描述描述描述 算術組件:算術組件:包括累加器、加法器、乘法器和包括累加器、加法器、乘法器和LPM算術函數算術函數 門電路:門電路: 包括多路復用器和包括多路復用器和LPM門函數門函數 I/O組件:組件:包括鎖相環包括鎖相環(PLL)、DDR(雙倍速率同步動態隨機存儲器)、千兆位收發器塊、千兆位收發器塊(GXB)、LVDS接收器和發送器、接

9、收器和發送器、PLL重新配置和遠程更新宏功能模塊重新配置和遠程更新宏功能模塊 存儲器編譯器:存儲器編譯器:包括包括FIFO、RAM和和ROM宏功能模塊宏功能模塊 存儲組件:存儲組件: 包括存儲器、移位寄存器宏模塊和包括存儲器、移位寄存器宏模塊和LPM存儲器存儲器函數函數 Altera提供的宏功能模塊與LPM函數有FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.1 宏功能模塊概述 6.1.1 知識產權(IP)核的應用 AMPP程序程序 MegaCore函數函數 OpenCore評估功能評估功能 OpenCore Plus硬件評估功能硬件評估功能 FPGA-CPLD原理及應用 第

10、6章 宏模塊和LPM函數的應用宏功能模塊概述zAltera宏功能模塊(Megafunction)的三種來源Megafunctions from the Altera Megafunction Partners Program AMPP (Altera宏功能合作伙伴計劃)提供的第三方IP CoreMegafunctions created by Altera, known as MegaCore functions Altera器件專有的Megafunction,由Altera公司提供的IP CoreEIA標準的LPM 庫(Library of Parameterized Modules參數化模

11、塊庫) LPM庫是一個不依賴特定硬件的邏輯模塊庫(EDA標準)。zALTERA推薦使用推薦使用經優化的Megafunction增強設計。特別是針對一些與Altera器件底層結構相關的特性,必須通過Megafunction實現。 z使用Megafunction將大大的減少設計風險及縮短開發周期減少設計風險及縮短開發周期。zMegafunction可以使設計師將更多時間和精力放在改善及提高系統級的產系統級的產品品上,而不要重新開發現成的Megafunction。FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用IP(知識產權) 一個好的IP Core要具備可靠、可重用、可配置、可測試的

12、特性,還應有 最成功的IP提供商之一: 雖然只有LPM、部分器件專有的Megafunction是免費的,但是這些免費的模塊也足夠滿足大多數設計的需要(LPM庫只有25個基本模塊就號稱可以完成所有的設計)。 評估付費Megafunction:使用開放式內核(OpenCore)技術 ,其設計流程如右圖所示。 如何用好Altera的Megafunction:認真閱讀文檔并執行必要的配置工作無風險FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用訪問IP MegaStore 網站,迅速找到并下載 Altera全部產品組合的宏功能。采用 Altera 強大的用戶友好的 MegaWizard

13、插件工具來參數化宏功能,根據需要選擇合適的功能,估算資源占用,設置第三方工具,產生將參數化 IP 集成到設計中所需的所有文件。在購買前,利用 OpenCore 評估功能,在仿真中評估 IP 的所有特性,包括系統功能、大小和速度等。在您決定購買 IP 許可前,利用 OpenCore Plus 硬件評估特性,產生時間受限的 FPGA 編程文件,然后利用它在您自己的硬件上驗證所有 FPGA 設計,也可以在任何其他支持的電路板上進行驗證。當您對 IP 內核完全滿意,并準備將設計投產時,可以購買許可,生成產品器件編程文件。Altera MegaCore許可能夠永久使用,支持多種工程,包括一年更新和支持。

14、對 Altera 所有 IP 提供浮動和節點鎖定的許可。可提供多種不同許可期限、條件和價格模型的第三方 IP 內核。請直接聯系 IP 合作伙伴,了解詳細信息。FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用開放式內核的設計流程 n想獲取Altera產品的最新、最權威的資料,請訪問 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用Altera IPAltera Megafunction Partners Program:AMPP是是ALTERA宏功能模塊、宏功能模塊、IP內核開發伙伴的組織內核開發伙伴的組織。 通過這個聯盟,AMPP的所有廠商提供基于ALTERA器件優

15、化的宏功能模塊、IP內核。 有關有關ALTERA的宏功能庫及的宏功能庫及IP內核的標志介紹內核的標志介紹 MegaCore是是ALTERA直接開發完成的,并有詳直接開發完成的,并有詳盡的使用資料的宏功能模塊、盡的使用資料的宏功能模塊、IP內核。內核。 針對ALTERA的器件作了特別的優化處理,達到并滿足用戶所指定的性能指標。ALTERA提供MegaCore是為了幫助客戶完成條件要求較苛刻的系統應用以及減少設計風險和開發時間。 ALTERA的的MaxplusII和和Quartus平臺均提供各平臺均提供各種種開放宏功能模塊開放宏功能模塊評估的功能。評估的功能。 允許用戶在購買某個宏功能模塊之前,進

16、行設計、編譯、仿真。 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用 Altera隨Quartus II附帶的宏功能模塊有以下五類:n算術組件:包括累加器、加法器、乘法器和LPM算術函數n門電路:包括多路復用器和LPM門函數nI/O組件:包括鎖相環(PLL)、倍速率同步隨機存儲器(DDR)、千兆位收發器塊(GXB)、LVDS接收器和發送器、PLL重新配置和遠程更新宏功能模塊n存儲器編譯器:包括FIFO、RAM和ROM宏模塊n存儲組件:存儲器、移位寄存器宏模塊和LPM存儲器函數 其余宏功能模塊在Quartus II上只有其網絡鏈接 使用資料:Help Megafunctions/

17、LPM 利用Megafunction進行項目設計的步驟:1.利用MegaWizard Plug-In Manager(MegaWizard 插件管理器)建立或修改包含自定義宏功能模塊的設計文件2.在頂層設計文件中對這些文件進行例化。Altera IPFPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.1 宏功能模塊概述 6.1.2 使用MegaWizard Plug-In Manager FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.1 宏功能模塊概述 6.1.3 在QuartusII中對宏功能模塊進行例化 (1) 在在VHDL中例化中例化 (2) 使用端口和

18、參數定義使用端口和參數定義( (原理圖)原理圖) (3) 使用端口和參數定義生成宏功能模塊使用端口和參數定義生成宏功能模塊 計數器計數器 加法加法/減法器減法器 乘法器乘法器 乘乘-累加器和乘累加器和乘-加法器加法器 RAM 移位寄存器移位寄存器 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2 LPM模塊應用實例 使用LPM_COUNTER模塊實現數控分頻器各端口信號的意義和設置參數的設置分頻比二分頻和占空比仿真波形FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用 數控分頻器電路原理圖數控分頻器電路原理圖基于LPM_COUNTER的數控分頻器設計FPGA-C

19、PLD原理及應用 第6章 宏模塊和LPM函數的應用當d3.0=12(即16進制數:C)時的工作波形數控分頻器工作波形數控分頻器工作波形FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2 LPM模塊應用實例 6.2.1 信號發生器電路設計 正弦波正弦波數據存儲ROM波形數據輸出DAC地址發生器counter數據個數:32個數據位數:8位輸出位數?地址位數?FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2 LPM模塊應用實例 6.2.2 定制LPM_ROM初始化數據文件 1建立建立.mif格式文件格式文件 【例例6-1】WIDTH = 8;DEPTH = 64

20、;ADDRESS_RADIX = HEX;DATA_RADIX = HEX;CONTENT BEGIN0 : FF;1 : FE;2 : FC;3 : F9;4 : F5;(數據略去)(數據略去)3D : FC;3E : FE;3F : FF;END; FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2 LPM模塊應用實例 6.2.2 定制LPM_ROM初始化數據文件 2建立建立.mif格式文件格式文件 【例例6-2】#include stdafx.h#include #include math.h#define PI 3.14159int main()int i; floa

21、t s; for (i = 0; i sin_rom.mif; FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2 LPM模塊應用實例 6.2.2 定制LPM_ROM初始化數據文件 3建立建立.mif格式文件格式文件 將波形數據填入將波形數據填入mif文件表中文件表中 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2.3 定制LPM_ROM元件 圖圖6-5 定制新的宏功能塊定制新的宏功能塊 6.2 LPM模塊應用實例 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2.3 定制LPM_ROM元件 圖6-6 LPM宏功能塊設定 FPGA-C

22、PLD原理及應用 第6章 宏模塊和LPM函數的應用6.2.3 定制LPM_ROM元件 選擇選擇data_rom模塊數據線和地址線寬度模塊數據線和地址線寬度 6.2 LPM模塊應用實例 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2.3 定制LPM_ROM元件 選擇地址鎖存信號選擇地址鎖存信號inclock 6.2 LPM模塊應用實例 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2.3 定制LPM_ROM元件 調入調入ROM初始化數據文件并選擇在系統讀寫功能初始化數據文件并選擇在系統讀寫功能 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應

23、用6.2.3 定制LPM_ROM元件 LPM_ROM設計完成設計完成 6.2 LPM模塊應用實例 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用【例例6-3】修改后的用于例化的波形數據修改后的用于例化的波形數據ROM文件:文件:data_rom.vhdLIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.altera_mf_components.all; -使用宏功能庫中的所有元件使用宏功能庫中的所有元件ENTITY data_rom ISPORT (address : IN STD_L

24、OGIC_VECTOR (5 DOWNTO 0); inclock : IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END data_rom;ARCHITECTURE SYN OF data_rom ISSIGNAL sub_wire0: STD_LOGIC_VECTOR (7 DOWNTO 0);COMPONENT altsyncram -例化例化altsyncram元件,調用了元件,調用了LPM模塊模塊altsyncram接下頁接下頁FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用GENERIC ( -參數傳遞語句

25、參數傳遞語句intended_device_family: STRING; -類屬參量數據類型定義類屬參量數據類型定義width_a: NATURAL; widthad_a: NATURAL;numwords_a: NATURAL; operation_mode : STRING;outdata_reg_a: STRING; address_aclr_a : STRING;outdata_aclr_a : STRING; width_byteena_a: NATURAL;init_file: STRING; lpm_hint: STRING;lpm_type: STRING);PORT ( c

26、lock0: IN STD_LOGIC ; -altsyncram元件接口聲明元件接口聲明address_a: IN STD_LOGIC_VECTOR (5 DOWNTO 0);q_a: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END COMPONENT;FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用BEGIN q Cyclone, -參數傳遞映射參數傳遞映射 width_a = 8, -數據線寬度數據線寬度8 widthad_a = 6, -地址線寬度地址線寬度6 numwords_a = 64, -數據數量數據數量64 operation_m

27、ode = ROM, -LPM模式模式ROM outdata_reg_a = UNREGISTERED, -輸出無鎖存輸出無鎖存 address_aclr_a = NONE, -無異步地址清無異步地址清0 outdata_aclr_a = NONE, -無輸出鎖存異步清無輸出鎖存異步清0 width_byteena_a = 1, - byteena_a輸入口寬度輸入口寬度1 init_file = ./dataHEX/SDATA.hex, -ROM初始化數據文件初始化數據文件 lpm_hint = ENABLE_RUNTIME_MOD=YES, INSTANCE_NAME=NONE, lpm_

28、type = altsyncram ) -LPM類型類型 PORT MAP ( clock0 = inclock, address_a = address,q_a = sub_wire0 ); END SYN;例6-3】FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2.4 完成頂層設計 【例例6-4】 正弦信號發生器頂層設計正弦信號發生器頂層設計LIBRARY IEEE; -正弦信號發生器源文件正弦信號發生器源文件USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SINGT IS PORT

29、( CLK : IN STD_LOGIC; -信號源時鐘信號源時鐘 DOUT : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); -8位波形數據輸出位波形數據輸出END;6.2 LPM模塊應用實例 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用ARCHITECTURE DACC OF SINGT ISCOMPONENT data_rom -數據存儲器數據存儲器LPM_ROM文件聲明文件聲明PORT(address:IN STD_LOGIC_VECTOR(5 DOWNTO 0);-地址信號地址信號inclock : IN STD_LOGIC ;-地址鎖存

30、時鐘地址鎖存時鐘q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END COMPONENT;SIGNAL Q1: STD_LOGIC_VECTOR (5 DOWNTO 0); -設定內部節點作為地址設定內部節點作為地址計數器計數器BEGIN PROCESS(CLK) -LPM_ROM地址發生器進程地址發生器進程 BEGINIF CLKEVENT AND CLK = 1 THEN Q1Q1,q= DOUT,inclock=CLK);-例化例化END; 【例6-4】 正弦信號發生器頂層設計FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.2.4 完成

31、頂層設計 6.2 LPM模塊應用實例 圖圖6-11 仿真波形輸出仿真波形輸出 嵌入式邏輯分析儀獲得的波形嵌入式邏輯分析儀獲得的波形 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.3 在系統存儲器數據讀寫編輯器應用In-System Memory Content Editor編輯窗編輯窗 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.3 在系統存儲器數據讀寫編輯器應用 與實驗系統上的與實驗系統上的FPGA通信正常情況下的編輯窗界面通信正常情況下的編輯窗界面 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.3 在系統存儲器數據讀寫編輯器應用

32、 從從FPGA中的中的ROM讀取波形數據讀取波形數據 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.3 在系統存儲器數據讀寫編輯器應用 下載編輯數據后的下載編輯數據后的SignalTap II采樣波形采樣波形 圖圖6-16 編輯波形數據編輯波形數據 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.4 編輯SignalTapII的觸發信號 選擇高級觸發條件選擇高級觸發條件 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.4 編輯SignalTapII的觸發信號 進入進入“觸發條件函數編輯觸發條件函數編輯”窗口窗口 FPGA-CPLD原理及應

33、用 第6章 宏模塊和LPM函數的應用6.4 編輯SignalTapII的觸發信號 編輯觸發函數編輯觸發函數 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.5.1 RAM定制 6.5 其它存儲器模塊的定制與應用 編輯定制編輯定制RAM FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.5.1 RAM定制 6.5 其它存儲器模塊的定制與應用 LPM_RAM的仿真波形的仿真波形 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.5.2 FIFO定制 6.5 其它存儲器模塊的定制與應用 FIFO編輯窗編輯窗 FPGA-CPLD原理及應用 第6章 宏模

34、塊和LPM函數的應用6.5.2 FIFO定制 6.5 其它存儲器模塊的定制與應用 FIFO的仿真波形的仿真波形 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.5.3 基于LPM_ROM的4位乘法器設計 6.5 其它存儲器模塊的定制與應用 【例例6-5】WIDTH = 8 ;WIDTH = 8 ;DEPTH = 256 ;DEPTH = 256 ;ADDRESS_RADIX = HEX ;ADDRESS_RADIX = HEX ;DATA_RADIX = HEX ;DATA_RADIX = HEX ;CONTENT BEGINCONTENT BEGIN 00:00 ; 01:

35、00 ; 02:00 ; 03:00 ; 04:00 ; 05:00 ; 06:00 ; 07:00 ; 08:00 ; 09:00; 00:00 ; 01:00 ; 02:00 ; 03:00 ; 04:00 ; 05:00 ; 06:00 ; 07:00 ; 08:00 ; 09:00; 10:00 ; 11:01 ; 12:02 ; 13:03 ; 14:04 ; 15:05 ; 16:06 ; 17:07 ; 18:08 ; 19:09; 10:00 ; 11:01 ; 12:02 ; 13:03 ; 14:04 ; 15:05 ; 16:06 ; 17:07 ; 18:08 ; 19

36、:09; 20:00 ; 21:02 ; 22:04 ; 23:06 ; 24:08 ; 25:10 ; 26:12 ; 27:14 ; 28:16 ; 29:18; 20:00 ; 21:02 ; 22:04 ; 23:06 ; 24:08 ; 25:10 ; 26:12 ; 27:14 ; 28:16 ; 29:18; 30:00 ; 31:03 ; 32:06 ; 33:09 ; 34:12 ; 35:15 ; 36:18 ; 37:21 ; 38:24 ; 39:27; 30:00 ; 31:03 ; 32:06 ; 33:09 ; 34:12 ; 35:15 ; 36:18 ; 37

37、:21 ; 38:24 ; 39:27; 40:00 ; 41:04 ; 42:08 ; 43:12 ; 44:16 ; 45:20 ; 46:24 ; 47:28 ; 48:32 ; 49:36; 40:00 ; 41:04 ; 42:08 ; 43:12 ; 44:16 ; 45:20 ; 46:24 ; 47:28 ; 48:32 ; 49:36; 50:00 ; 51:05 ; 52:10 ; 53:15 ; 54:20 ; 55:25 ; 56:30 ; 57:35 ; 58:40 ; 59:45; 50:00 ; 51:05 ; 52:10 ; 53:15 ; 54:20 ; 55

38、:25 ; 56:30 ; 57:35 ; 58:40 ; 59:45; 60:00 ; 61:06 ; 62:12 ; 63:18 ; 64:24 ; 65:30 ; 66:36 ; 67:42 ; 68:48 ; 69:54; 60:00 ; 61:06 ; 62:12 ; 63:18 ; 64:24 ; 65:30 ; 66:36 ; 67:42 ; 68:48 ; 69:54; 70:00 ; 71:07 ; 72:14 ; 73:21 ; 74:28 ; 75:35 ; 76:42 ; 77:49 ; 78:56 ; 79:63; 70:00 ; 71:07 ; 72:14 ; 73

39、:21 ; 74:28 ; 75:35 ; 76:42 ; 77:49 ; 78:56 ; 79:63; 80:00 ; 81:08 ; 82:16 ; 83:24 ; 84:32 ; 85:40 ; 86:48 ; 87:56 ; 88:64 ; 89:72; 80:00 ; 81:08 ; 82:16 ; 83:24 ; 84:32 ; 85:40 ; 86:48 ; 87:56 ; 88:64 ; 89:72; 90:00 ; 91:09 ; 92:18 ; 93:27 ; 94:36 ; 95:45 ; 96:54 ; 97:63 ; 98:72 ; 99:81; 90:00 ; 91

40、:09 ; 92:18 ; 93:27 ; 94:36 ; 95:45 ; 96:54 ; 97:63 ; 98:72 ; 99:81;END ; FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用6.6 流水線乘法累加器的混合輸入設計 10NkknknfxyDSPFPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用(1)用VHDL設計16位加法器 6.6 流水線乘法累加器的混合輸入設計 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER16B IS P

41、ORT ( CIN : IN STD_LOGIC; A, B : IN STD_LOGIC_VECTOR(15 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); COUT : OUT STD_LOGIC );END ADDER16B;ARCHITECTURE behav OF ADDER16B IS SIGNAL SINT : STD_LOGIC_VECTOR(16 DOWNTO 0);SIGNAL AA,BB : STD_LOGIC_VECTOR(16 DOWNTO 0);BEGINAA=0&A; BB=0&B; SINT =

42、 AA+BB+CIN; S = SINT(15 DOWNTO 0); COUT =0gotoloop;JMPGEZLOOP0A0504endHALT0B0700 . A00000 A10001 A20064FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用選擇實現選擇實現CPU的方法的方法u硬連線邏輯(硬連線邏輯(HardWired)u微程序(微程序(MicroProgram)u(HDL+EDA工具工具)lVHDLlQuartusu以下為以下為VHDL代碼代碼的基本框架的基本框架 算法級 物理特性 寄存器傳輸級 行為特性 邏輯級 電路級 版圖級 版圖綜合 邏輯綜合 高層次綜合 結構特

43、性 FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用CPU 設計指令集和架構定義指令集和架構定義電路設計電路設計半導體制造工藝半導體制造工藝ISAArchitecturemicro-architecturePipelineProcessLayoutFPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用 設計一個簡化的CPU1. 設計一個簡化的處理器處理器(字長16位),并使其與內存MEM連接。2. 用VHDL以以RTL風格風格描述。3. 該處理器當前執行的指令存放在指令寄存器IR中,指令集僅算邏指令和訪問內存指令。FPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的

44、應用CPU結構 取指: CPU要從存儲器中讀取指令。 譯碼: 翻譯指令用以確定要執行的操作。 取數據: 指令的執行可能會要求從存儲器或I/O模塊中讀取數據。 處理數據:指令的執行可能會要求對數據進行算術或邏輯運算操作 寫數據: 指令執行的結果可能需要寫入存儲器或者I/O模塊中。 設計一個簡化的CPUFPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用CPU內部結構 設計一個簡化的CPUFPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用CPU內部寄存器 MAR(Memory Address Register)MAR存放著要從存儲器中讀取或要寫入存儲器的存儲器地址。“讀”定義

45、為CPU從內存中讀。“寫”定義為CPU把數據寫入內存。 MAR擁有8比特,可以存取256個地址。 設計一個簡化的CPUFPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用CPU內部寄存器 MDR(Memory Data Register)MDR存儲著將要被存入內存或者最后一次從內存中讀出來的數值。MDR有16比特。 PC(Program Counter)PC寄存器用來跟蹤程序中將要使用的指令。PC有8比特。 設計一個簡化的CPUFPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用CPU內部寄存器 IR(Instruction Register)IR存放指令的OPCODE(操

46、作碼)部分。IR有8比特。 BR(Buffer Register)BR作為ALU的一個輸入,存放著ALU的一個操作數。BR有16比特。 ACC(Accumulator)ACC保存著ALU的另一個操作數,而且通常ACC存放著ALU的計算結果。ACC有16比特。 設計一個簡化的CPUFPGA-CPLD原理及應用 第6章 宏模塊和LPM函數的應用 設計一個簡化的CPU1. 程序(指令序列)預先存放在MEM里,程序執行時,需要從MEM中取指令。建議用調用庫單元lpm_ram_dq的方法實現MEM。2. 恰當使用變量和信號:信號用于進程之間的通信;變量用于進程(以及函數、過程)內部保存數據。變量的新值可

47、在賦值語句執行后立即得到;而信號的新值在賦值語句執行后必須經過延遲才能得到。3. 某些信號(以及變量)需要受時鐘控制,有些則不必受時鐘控制。受時鐘控制的信號所對應的硬件必定是寄存器;不受時鐘控制的信號所對應的硬件有可能是組合邏輯,其成本較低,并且形成該信號的時延可能較小。設計要點FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CPU的指令集的指令集OPCODE15:8ADDRESS7:0分為兩個步驟: 1) 將數據和程序(即指令序列)輸入到計算機的存儲器中。 2) 從第一條指令的地址起開始執行該程序,得到所需結果,結束運行。FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應

48、用CPU的指令集的指令集FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CPU的指令集的指令集FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CLKRSTALU2ACC_in15.0c9_c171.0ACC_out15.0ACCinst6 累加器用于存放當前的結果,它也是雙目運算其中一個數據來源。復位后,累加器的值是零。當累加器通過C9_C17口收到來自CPU控制器load_acc信號時,在clk時鐘正跳沿時收到來自于數據總線的數據。 ACC (Accumulator) CPU電路組成電路組成FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用ALU is a

49、calculation unit which accomplishes basic arithmetic and logic operationsALU (Arithmetic Logic Unit) CPU電路組成電路組成CLKRSTBR2ALU_in15.0ACC2ALU_in15.0c16toc133.0ALU_out15.0ALU2MR_out15.0flagALUinst7FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用指令寄存器在clk的正沿觸發下,寄存器將數據總線送來的指令存入8位寄存器中。CPU狀態控制器的load_ir信號控制通過控制器C4 口輸入到指令寄存器。復

50、位后,指令寄存器被 8 清為零。 每條指令為2個字節,即16位,高8位進入IR,低8位進入BR。IR (Instruction Register) CPU電路組成電路組成CLKRSTMBR2IR_in7.0c4IR_out7.0IRinst4FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用MAR contains the memory location of the word to be read from the memory or written into the memory. Here, READ operation is denoted as the CPU reads

51、from memory, and WRITE operation is denoted as the CPU writes to memory. MAR has 8 bits to access one of 256 addresses of the memory. MAR (Memory Address Register) CPU電路組成電路組成CLKRSTMBR2MAR_in7.0PC2MAR_in7.0c8_c21.0MAR_out7.0MARinst2FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用MDR contains the value to be stored in

52、 memory or the last value read from memory. MDR is connected to the address lines of the system bus. MDR has 16 bits. MDR (Memory Data Register) CPU電路組成電路組成CLKRSTMEM2MDR_in15.0ACC2MDR_in15.0c5_c111.0MDR_out15.0MDRinst14FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用PC keeps track of the instructions to be used in th

53、e program. In our design, PC has 8 bits.PC (Program Counter) CPU電路組成電路組成CLKRSTMBR2PC_in7.0c3_c101.0PC_out7.0PCinst3FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用MR is used for implementing the MPY instruction, holding the multiplier at the beginning of the instruction. When the instruction is executed, it holds par

54、t of the product. MR (Multiplier Register) CPU電路組成電路組成CLKRSTALU2MR_in15.0MR_out15.0MRinst9FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CAR (control address Register)Control MemoryInstruction registerSequencing logicControl Buffer RegisterControl SignalsMicro-programmed Control Unit CPU電路組成電路組成CLKRSTIR_in7.0flagcon

55、trol17.0CU2inst8FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用Micro-programmed Control Unit CPU電路組成電路組成控制器接受復位信號RST,當RST有效時通過信號control使其為0,輸入到狀態機中停止狀態機的工作。狀態機是CPU的控制核心,用于產生一系列的控制信號,啟動或停止某些部件。CPU何時進行讀指令讀寫I/O端口,RAM區等操作,都是由狀態機來控制的。狀態機的當前狀態,由變量state記錄,state的值就是當前這個指令周期中已經過的時鐘數(從零計起)。CLKRSTIR_in7.0f lagcontrol17.0CU2ins

56、t8FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用Micro-programmed Control Unit CPU電路組成電路組成 狀態控制器的主要思路為在8個時鐘周期中對其進行不同的操作,具體如下:1) 第0個時鐘,因為CPU狀態控制器的輸出,裝入指令為高電平,其余均為低電平。指令寄存器寄存由ROM送來的高8位指令代碼。 2) 第1個時鐘,與上一時鐘相比只是PC增1,ROM送來低8位指令代碼,指令寄存器寄存該8位代碼。 3) 第2個時鐘,空操作。 4) 第3個時鐘, PC增1, 指向下一條指令。 若操作符為HLT, 則輸出信號HLT為高。 如果操作符不為HLT,除了PC增一外

57、(指向下一條指令),其它各控制線輸出為零。 FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用Micro-programmed Control Unit CPU電路組成電路組成 狀態控制器的主要思路為在8個時鐘周期中對其進行不同的操作,具體如下: 5) 第4個時鐘,若操作符為AND、ADD或LOAD,讀相應地址的數據;若為JMP,將目的地址送給程序計數器;若為STORE,輸出累加器數據。6) 第5個時鐘,若操作符為AND、ADD,算術運算器就進行相應的運算;若為LOAD,就把數據通過算術運算器送給累加器;若為JMPGEZ,先判斷累加器的值是否為0,如果為0,PC就增1,否則保持原值;

58、若為JMP,鎖存目的地址;若為STORE,將數據寫入地址處。 7) 第6個時鐘,空操作。 8) 第7個時鐘,若操作符為JMPGEZ且累加器值為0,則PC值再增1,跳過一條指令,否則PC無變化。FPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CPU的指令集的指令集MDRmemoryIRopcodeMDRMARMDR7-0 PCPC+1MDRACCmemoryMDRMARPCSTOREFPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CPU的指令集的指令集MDRmemoryIRopcodeMDRMARMDR7-0 PCPC+1MDRmemoryACC0BRMDRACCACC+

59、BRMARPCLOADFPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CPU的指令集的指令集ADDMDRmemoryIRopcodeMDRMARMDR7-0 PCPC+1MDRmemoryBRMDRACCACC+BRMARPCFPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CPU的指令集的指令集SUBMDRmemoryIRopcodeMDRMARMDR7-0 PCPC+1MDRmemoryBRMDRACCACC-BRMARPCFPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CPU的指令集的指令集MDRmemoryIRopcodeMDRMARMDR7-0 PC

60、PC+1MDRmemoryBRMDRACCACC and BRANDFPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CPU的指令集的指令集ORMDRmemoryIRopcodeMDRMARMDR7-0 PCPC+1MDRmemoryBRMDRACCACC or BRMARPCFPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CPU的指令集的指令集 NOTMDRmemoryIRopcodeMDRACCnot ACCPCPC+1MARPCFPGA-CPLD原理及應用第6章 宏模塊和LPM函數的應用CPU的指令集的指令集MDRmemoryIRopcodeMDRMARMDR7-0 PCPC+1MDRmemor

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論