7_第7章 宏功能模塊與IP應(yīng)用.ppt_第1頁
7_第7章 宏功能模塊與IP應(yīng)用.ppt_第2頁
7_第7章 宏功能模塊與IP應(yīng)用.ppt_第3頁
7_第7章 宏功能模塊與IP應(yīng)用.ppt_第4頁
7_第7章 宏功能模塊與IP應(yīng)用.ppt_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、EDA 技術(shù)實(shí)用教程,第 7 章 宏功能模塊與IP應(yīng)用,7.1 宏功能模塊概述,KX康芯科技,7.1 宏功能模塊概述,KX康芯科技,7.1.1 知識產(chǎn)權(quán)核的應(yīng)用,AMPP程序,MegaCore函數(shù),OpenCore評估功能,OpenCore Plus硬件評估功能,7.1 宏功能模塊概述,KX康芯科技,7.1.2 使用MegaWizard Plug-In Manager,.bsf : Block Editor中使用的宏功能模塊的符號(元件)。 .cmp : 組件申明文件。 .inc : 宏功能模塊包裝文件中模塊的AHDL包含文件。 .tdf : 要在AHDL設(shè)計(jì)中實(shí)例化的宏功能模塊包裝文件。 .

2、vhd : 要在VHDL設(shè)計(jì)中實(shí)例化的宏功能模塊包裝文件。 .v : 要在VerilogHDL設(shè)計(jì)中實(shí)例化的宏功能模塊包裝文件。 _bb.v :VerilogHDL設(shè)計(jì)所用宏功能模塊包裝文件中模塊的空體或 black-box申明,用于在使用EDA 綜合工具時指定端口方向。 _inst.tdf : 宏功能模塊包裝文件中子設(shè)計(jì)的AHDL例化示例。 _inst.vhd : 宏功能模塊包裝文件中實(shí)體的VHDL例化示例。 _inst.v : 宏功能模塊包裝文件中模塊的VerilogHDL例化示例。,7.1 宏功能模塊概述,KX康芯科技,7.1.3 在QuartusII中對宏功能模塊進(jìn)行例化,1、在Ver

3、ilogHDL和VHDL中例化,2、使用端口和參數(shù)定義,3、使用端口和參數(shù)定義生成宏功能模塊,計(jì)數(shù)器 乘-累加器和乘-加法器 加法/減法器 RAM 乘法器 移位寄存器,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.1 工作原理,f = f0 /64,圖7-1 正弦信號發(fā)生器結(jié)構(gòu)框圖,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,1建立.mif格式文件,【例7-1】 WIDTH = 8; DEPTH = 64; ADDRESS_RADIX = HEX; DATA_RADIX = HEX; CONTENT BEGIN 0 : FF; 1 : FE; 2 : FC; 3 :

4、F9; 4 : F5; (數(shù)據(jù)略去) 3D : FC; 3E : FE; 3F : FF; END;,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,1建立.mif格式文件,【例7-2】 #include #include math.h main() int i;float s; for(i=0;i1024;i+) s = sin(atan(1)*8*i/1024); printf(%d : %d;n,i,(int)(s+1)*1023/2); ,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,2建立.hex格式文件,圖7-2 將波形數(shù)據(jù)填入mif文

5、件表中,KX康芯科技,2建立.hex格式文件,圖7-3 ASM格式建hex文件,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,2建立.hex格式文件,圖7-4 sdata.hex文件的放置路徑,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,7.2.3 定制LPM_ROM元件,圖7-5 定制新的宏功能塊,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,7.2.3 定制LPM_ROM元件,圖7-6 LPM宏功能塊設(shè)定,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,7.2.3 定制LPM_ROM元件,圖7-7 選擇data_rom

6、模塊數(shù)據(jù)線和地址線寬度,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,7.2.3 定制LPM_ROM元件,圖7-8 選擇地址鎖存信號inclock,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,7.2.3 定制LPM_ROM元件,圖7-9 調(diào)入ROM初始化數(shù)據(jù)文件并選擇在系統(tǒng)讀寫功能,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,7.2.3 定制LPM_ROM元件,圖7-10 LPM_ROM設(shè)計(jì)完成,KX康芯科技,【例7-3】 LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRA

7、RY altera_mf; USE altera_mf.altera_mf_components.all; -使用宏功能庫中的所有元件 ENTITY data_rom IS PORT (address : IN STD_LOGIC_VECTOR (5 DOWNTO 0); inclock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END data_rom; ARCHITECTURE SYN OF data_rom IS SIGNAL sub_wire0: STD_LOGIC_VECTOR (7 DOWNTO 0); CO

8、MPONENT altsyncram -例化altsyncram元件,調(diào)用了LPM模塊altsyncram GENERIC ( -參數(shù)傳遞語句 intended_device_family: STRING; -類屬參量數(shù)據(jù)類型定義 width_a: NATURAL; widthad_a: NATURAL; numwords_a: NATURAL; operation_mode: STRING; outdata_reg_a: STRING; address_aclr_a: STRING;,接下頁,KX康芯科技,outdata_aclr_a: STRING; width_byteena_a: NA

9、TURAL; init_file: STRING; lpm_hint: STRING; lpm_type: STRING); PORT (clock0: IN STD_LOGIC ; -altsyncram元件接口聲明 address_a: IN STD_LOGIC_VECTOR (5 DOWNTO 0); q_a: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT; BEGIN q Cyclone, -參數(shù)傳遞映射 width_a = 8, -數(shù)據(jù)線寬度8 widthad_a = 6, -地址線寬度6 numwords_a = 64, -數(shù)

10、據(jù)數(shù)量64 operation_mode = 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初始化數(shù)據(jù)文件,此處已修改過,接下頁,KX康芯科技,lpm_hint = ENABLE_RUNTIME_MOD=YES, INSTANCE_NAME=NONE,

11、lpm_type = altsyncram ) -LPM類型 PORT MAP ( clock0 = inclock, address_a = address,q_a = sub_wire0 ); END SYN;,接上頁,KX康芯科技,7.2.4 完成頂層設(shè)計(jì),【例7-4】 正弦信號發(fā)生器頂層設(shè)計(jì) LIBRARY IEEE; -正弦信號發(fā)生器源文件 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SINGT IS PORT ( CLK : IN STD_LOGIC; -信號源時鐘 DOUT : OUT

12、STD_LOGIC_VECTOR (7 DOWNTO 0) );-8位波形數(shù)據(jù)輸出 END; ARCHITECTURE DACC OF SINGT IS COMPONENT data_rom -調(diào)用波形數(shù)據(jù)存儲器LPM_ROM文件:data_rom.vhd聲明 PORT(address : IN STD_LOGIC_VECTOR (5 DOWNTO 0);-6位地址信號 inclock : IN STD_LOGIC ;-地址鎖存時鐘 q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); END COMPONENT; SIGNAL Q1 : STD_LOGIC_VECTO

13、R (5 DOWNTO 0); -設(shè)定內(nèi)部節(jié)點(diǎn)作為地址計(jì)數(shù)器 BEGIN PROCESS(CLK ) -LPM_ROM地址發(fā)生器進(jìn)程 BEGIN IF CLKEVENT AND CLK = 1 THEN Q1Q1, q = DOUT,inclock=CLK);-例化 END;,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,7.2.4 完成頂層設(shè)計(jì),圖7-11 仿真波形輸出,7.2 宏模塊應(yīng)用實(shí)例,KX康芯科技,7.2.2 定制初始化數(shù)據(jù)文件,7.2.4 完成頂層設(shè)計(jì),圖7-12 嵌入式邏輯分析儀獲得的波形,7.3 在系統(tǒng)存儲器數(shù)據(jù)讀寫編輯器應(yīng)用,KX康芯科技,圖7-13

14、 In-System Memory Content Editor編輯窗,7.3 在系統(tǒng)存儲器數(shù)據(jù)讀寫編輯器應(yīng)用,KX康芯科技,圖7-14 與實(shí)驗(yàn)系統(tǒng)上的FPGA通信正常情況下的編輯窗界面,7.3 在系統(tǒng)存儲器數(shù)據(jù)讀寫編輯器應(yīng)用,KX康芯科技,圖7-15 從FPGA中的ROM讀取波形數(shù)據(jù),7.3 在系統(tǒng)存儲器數(shù)據(jù)讀寫編輯器應(yīng)用,KX康芯科技,圖7-16 編輯波形數(shù)據(jù),7.3 在系統(tǒng)存儲器數(shù)據(jù)讀寫編輯器應(yīng)用,KX康芯科技,圖7-16下載編輯數(shù)據(jù)后的SignalTapII采樣波形,7.4 編輯SignalTapII的觸發(fā)信號,KX康芯科技,圖7-17 選擇高級觸發(fā)條件,7.4 編輯SignalTap

15、II的觸發(fā)信號,KX康芯科技,圖7-18 進(jìn)入“觸發(fā)條件函數(shù)編輯”窗口,7.4 編輯SignalTapII的觸發(fā)信號,KX康芯科技,圖7-19 編輯觸發(fā)函數(shù),7.5 其它存儲器模塊的定制與應(yīng)用,KX康芯科技,圖7-20 編輯定制RAM,7.5.1 RAM定制,7.5 其它存儲器模塊的定制與應(yīng)用,KX康芯科技,圖7-21 LPM_RAM的仿真波形,7.5.1 RAM定制,7.5 其它存儲器模塊的定制與應(yīng)用,KX康芯科技,圖7-22 FIFO編輯窗,7.5.2 FIFO定制,7.5 其它存儲器模塊的定制與應(yīng)用,KX康芯科技,圖7-23 FIFO的仿真波形,7.5.2 FIFO定制,7.6流水線乘法

16、累加器的混合輸入設(shè)計(jì),KX康芯科技,(1)用VHDL設(shè)計(jì)16位加法器。,【例7-5】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER16B IS PORT ( 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

17、 OF ADDER16B IS SIGNAL SINT : STD_LOGIC_VECTOR(16 DOWNTO 0); SIGNAL AA,BB : STD_LOGIC_VECTOR(16 DOWNTO 0); BEGIN AA=0,7.6流水線乘法累加器的混合輸入設(shè)計(jì),KX康芯科技,圖7-24 在原理圖編輯窗加入LPM元件,(2)頂層原理圖文件設(shè)計(jì)。,7.6流水線乘法累加器的混合輸入設(shè)計(jì),KX康芯科技,圖7-25 將LPM乘法器設(shè)置為流水線工作方式,(2)頂層原理圖文件設(shè)計(jì)。,7.6流水線乘法累加器的混合輸入設(shè)計(jì),KX康芯科技,圖7-26 乘法累加器電路,(2)頂層原理圖文件設(shè)計(jì)。,7.6

18、流水線乘法累加器的混合輸入設(shè)計(jì),KX康芯科技,圖7-27 muladd工程仿真波形,(3)仿真。,7.6流水線乘法累加器的混合輸入設(shè)計(jì),KX康芯科技,圖7-28 對乘法器選擇不同設(shè)置后的編譯報告,(4)圖7-28是對于圖7-25在進(jìn)行不同項(xiàng)目的選擇后,編譯報告給出的不同資源利用情況。,7.7 LPM嵌入式鎖相環(huán)調(diào)用,KX康芯科技,圖7-29 選擇參考時鐘為20MHz,7.7.1 建立嵌入式鎖相環(huán)元件,7.7 LPM嵌入式鎖相環(huán)調(diào)用,KX康芯科技,圖7-30 選擇控制信號,7.7.1 建立嵌入式鎖相環(huán)元件,7.7 LPM嵌入式鎖相環(huán)調(diào)用,KX康芯科技,圖7-31 選擇e0的輸出頻率為210MHz

19、,7.7.1 建立嵌入式鎖相環(huán)元件,7.7 LPM嵌入式鎖相環(huán)調(diào)用,KX康芯科技,圖7-32 PLL元件的仿真波形,7.7.2 測試鎖相環(huán),KX康芯科技,7.7.2 測試鎖相環(huán),單頻率輸出的應(yīng)用PLL的示例: ; ENTITY DDS_VHDL IS PORT ( CLKK : IN STD_LOGIC; -此時鐘進(jìn)入鎖相環(huán) FWORD : IN STD_LOGIC_VECTOR(7 DOWNTO 0); ; ARCHITECTURE one OF DDS_VHDL IS COMPONENT PLLU -調(diào)入PLL聲明 PORT (inclk0 : IN STD_LOGIC := 0; c0

20、: OUT STD_LOGIC); END COMPONENT; COMPONENT REG32B ; BEGIN ; u6 : SIN_ROM PORT MAP( address=D32B(31 DOWNTO 22), q=POUT, inclock=CLK ); u7 : PLL20 PORT MAP( inclk0= CLKK,c0=CLK); -例化 END;,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-33 安裝NCO核,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-34 確定安裝路徑,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-35 開

21、始Core的工程路徑,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-36 確定工程路徑和工程名,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-37 打開Core用戶庫設(shè)置窗,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-38 選中確定路徑上的NCO庫,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-39 加入NCO庫,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-40 已經(jīng)在工程中加入NCO庫,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-41 打開Core設(shè)置管理窗,7.8 IP核NCO數(shù)控振蕩器使用方法,KX

22、康芯科技,圖7-42 開始進(jìn)入Core參數(shù)設(shè)置窗Toolbench,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-43 設(shè)置NCO參數(shù),7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-44設(shè)置NCO參數(shù),7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-45完成NCO參數(shù)設(shè)置并生成設(shè)計(jì)文件后的信息窗,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-46 加入NCO的授權(quán)文件,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-47 選定FPGA目標(biāo)器件,7.8 IP核NCO數(shù)控振蕩器使用方法,KX康芯科技,圖7-48 設(shè)定工程后進(jìn)行全程編

23、譯,7.9 8051單片機(jī)IP核應(yīng)用,KX康芯科技,圖7-49 基本8051CPU核應(yīng)用電路示例,7.9 8051單片機(jī)IP核應(yīng)用,KX康芯科技,圖7-50 單片機(jī)I/O口設(shè)置成雙向口的電路,7.9 8051單片機(jī)IP核應(yīng)用,KX康芯科技,圖7-51 設(shè)置FPGA的總線口輸出為上拉,7.9 8051單片機(jī)IP核應(yīng)用,KX康芯科技,圖7-52 LPM_ROM初始化文件路徑,KX康芯科技,圖7-53 TEST1.asm匯編程序,7.9 8051單片機(jī)IP核應(yīng)用,KX康芯科技,圖7-54 下載匯編程序HEX代碼,習(xí) 題,KX康芯科技,7-1. 如果不使用MegaWizard Plug-In Mana

24、ger工具,如何在自己的設(shè)計(jì)中調(diào)用LPM模塊?以計(jì)數(shù)器lpm_counter為例,寫出調(diào)用該模塊的程序,其中參數(shù)自定。 7-2. LPM_ROM、LPM_RAM、LPM_FIFO等模塊與FPGA中嵌入的EAB,ESB,M4K有怎樣的聯(lián)系關(guān)系? 7-3. 參考QuartusII的Help(Contents),詳細(xì)說明LPM元件altcam、altsyncram、lpm_fifo、lpm_shiftreg的使用方法,以及其中各參量的含義和設(shè)置方法。 7-4. 如果要設(shè)計(jì)一8051單片機(jī),如何為它配置含有匯編程序代碼的ROM(文件)? 7-5. 將例7-4的頂層程序和例7-3的ROM程序合并成為一個

25、程序,要求用例化語句直接調(diào)用LPM模塊altsyncram。編譯驗(yàn)證,使之功能與原設(shè)計(jì)相同。,實(shí)驗(yàn)與設(shè)計(jì),KX康芯科技,7-1. 正弦信號發(fā)生器設(shè)計(jì) (1)實(shí)驗(yàn)?zāi)康模哼M(jìn)一步熟悉QuartusII及其LPM_ROM與FPGA硬件資源的使用方法。 (2)實(shí)驗(yàn)原理:參考本章相關(guān)內(nèi)容。 (3)實(shí)驗(yàn)內(nèi)容1:根據(jù)例7-4,在Quartus II上完成正弦信號發(fā)生器設(shè)計(jì),包括仿真和資源利用情況了解(假設(shè)利用Cyclone器件)。最后在實(shí)驗(yàn)系統(tǒng)上實(shí)測,包括SignalTap II測試、FPGA中ROM的在系統(tǒng)數(shù)據(jù)讀寫測試和利用示波器測試。最后完成EPCSx配置器件的編程。 (4)實(shí)驗(yàn)內(nèi)容2:按照圖7-49所示

26、,用原理圖方法設(shè)計(jì)正弦信號發(fā)生器,要調(diào)用3個LPM模塊來構(gòu)成:1、PLL,輸入頻率20MHz,32MHz單頻率輸出;2、6位二進(jìn)制計(jì)數(shù)器;3、LPM ROM,加載的波形數(shù)據(jù)同上。注意,硬件實(shí)現(xiàn)時可以通過SignalTapII觀察波形,但不能用0832輸出,波形必須用高速DAC輸出。,實(shí)驗(yàn)與設(shè)計(jì),KX康芯科技,圖7-55 調(diào)用了PLL元件信號發(fā)生器原理圖,實(shí)驗(yàn)與設(shè)計(jì),KX康芯科技,7-1. 正弦信號發(fā)生器設(shè)計(jì) (5)實(shí)驗(yàn)內(nèi)容3:修改例7-3的數(shù)據(jù)ROM文件,設(shè)其數(shù)據(jù)線寬度為8,地址線寬度也為8,初始化數(shù)據(jù)文件使用MIF格式,用C程序產(chǎn)生正弦信號數(shù)據(jù),最后完成以上相同的實(shí)驗(yàn)。 (6)實(shí)驗(yàn)內(nèi)容4:設(shè)

27、計(jì)一任意波形信號發(fā)生器,可以使用LPM雙口RAM擔(dān)任波形數(shù)據(jù)存儲器,利用單片機(jī)產(chǎn)生所需要的波形數(shù)據(jù),然后輸向FPGA中的RAM(可以利用GW48系統(tǒng)上與FPGA接口的單片機(jī)完成此實(shí)驗(yàn),D/A可利用系統(tǒng)上配置的0832或5651高速器件)。 (7)實(shí)驗(yàn)報告:根據(jù)以上的實(shí)驗(yàn)內(nèi)容寫出實(shí)驗(yàn)報告,包括設(shè)計(jì)原理、程序設(shè)計(jì)、程序分析、仿真分析、硬件測試和詳細(xì)實(shí)驗(yàn)過程。,實(shí)驗(yàn)與設(shè)計(jì),KX康芯科技,7-2. 8位16進(jìn)制頻率計(jì)設(shè)計(jì) (1) 實(shí)驗(yàn)?zāi)康模涸O(shè)計(jì)8位16進(jìn)制頻率計(jì),學(xué)習(xí)較復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)方法。 (2) 實(shí)驗(yàn)原理:根據(jù)頻率的定義和頻率測量的基本原理,測定信號的頻率必須有一個脈寬為1秒的輸入信號脈沖計(jì)數(shù)允

28、許的信號;1秒計(jì)數(shù)結(jié)束后,計(jì)數(shù)值被鎖入鎖存器,計(jì)數(shù)器清0,為下一測頻計(jì)數(shù)周期作好準(zhǔn)備。測頻控制信號可以由一個獨(dú)立的發(fā)生器來產(chǎn)生,即圖7-57中的FTCTRL。根據(jù)測頻原理,測頻控制時序可以如圖7-56所示。 設(shè)計(jì)要求是:FTCTRL的計(jì)數(shù)使能信號CNT_EN能產(chǎn)生一個1秒脈寬的周期信號,并對頻率計(jì)中的32位二進(jìn)制計(jì)數(shù)器COUNTER32B(圖7-57)的ENABL使能端進(jìn)行同步控制。當(dāng)CNT_EN高電平時允許計(jì)數(shù);低電平時停止計(jì)數(shù),并保持其所計(jì)的脈沖數(shù)。在停止計(jì)數(shù)期間,首先需要一個鎖存信號LOAD的上跳沿將計(jì)數(shù)器在前1秒鐘的計(jì)數(shù)值鎖存進(jìn)鎖存器REG32B中,并由外部的16進(jìn)制7段譯碼器譯出,顯

29、示計(jì)數(shù)值。設(shè)置鎖存器的好處是數(shù)據(jù)顯示穩(wěn)定,不會由于周期性的清0信號而不斷閃爍。鎖存信號后,必須有一清0信號RST_CNT對計(jì)數(shù)器進(jìn)行清零,為下1秒的計(jì)數(shù)操作作準(zhǔn)備。,實(shí)驗(yàn)與設(shè)計(jì),KX康芯科技,7-2. 8位16進(jìn)制頻率計(jì)設(shè)計(jì) (3) 實(shí)驗(yàn)內(nèi)容1:分別仿真測試模塊例7-7、例7-8和例7-9,再結(jié)合例7-10完成頻率計(jì)的完整設(shè)計(jì)和硬件實(shí)現(xiàn),并給出其測頻時序波形及其分析。建議選實(shí)驗(yàn)電路模式5;8個數(shù)碼管以16進(jìn)制形式顯示測頻輸出;待測頻率輸入FIN由clock0輸入,頻率可選4Hz、256HZ、3Hz.50MHz等;1HZ測頻控制信號CLK1HZ可由clock2輸入(用跳線選1Hz)。注意,這時8

30、個數(shù)碼管的測頻顯示值是16進(jìn)制的。 (4) 實(shí)驗(yàn)內(nèi)容2:參考例4-22,將頻率計(jì)改為8位10進(jìn)制頻率計(jì),注意此設(shè)計(jì)電路的計(jì)數(shù)器必須是8個4位的10進(jìn)制計(jì)數(shù)器,而不是1個。此外注意在測頻速度上給予優(yōu)化。 (5) 實(shí)驗(yàn)內(nèi)容3:用LPM模塊取代例7-8和例7-9,再完成同樣的設(shè)計(jì)任務(wù)。 (6) 實(shí)驗(yàn)報告:給出頻率計(jì)設(shè)計(jì)的完整實(shí)驗(yàn)報告。,KX康芯科技,【例7-7】 LIBRARY IEEE; -測頻控制電路 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FTCTRL IS PORT (CLKK : IN STD

31、_LOGIC; - 1Hz CNT_EN : OUT STD_LOGIC; - 計(jì)數(shù)器時鐘使能 RST_CNT : OUT STD_LOGIC; - 計(jì)數(shù)器清零 Load : OUT STD_LOGIC ); - 輸出鎖存信號 END FTCTRL; ARCHITECTURE behav OF FTCTRL IS SIGNAL Div2CLK : STD_LOGIC; BEGIN PROCESS( CLKK ) BEGIN IF CLKKEVENT AND CLKK = 1 THEN - 1Hz時鐘2分頻 Div2CLK = NOT Div2CLK; END IF; END PROCESS;

32、PROCESS (CLKK, Div2CLK) BEGIN IF CLKK=0 AND Div2CLK=0 THEN RST_CNT=1;- 產(chǎn)生計(jì)數(shù)器清零信號 ELSE RST_CNT = 0; END IF; END PROCESS; Load = NOT Div2CLK; CNT_EN = Div2CLK; END behav;,KX康芯科技,【例7-8】 LIBRARY IEEE; -32位鎖存器 USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG32B IS PORT ( LK : IN STD_LOGIC; DIN : IN STD_LOGIC_VECT

33、OR(31 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END REG32B; ARCHITECTURE behav OF REG32B IS BEGIN PROCESS(LK, DIN) BEGIN IF LKEVENT AND LK = 1 THEN DOUT = DIN; END IF; END PROCESS; END behav;,KX康芯科技,【例7-9】 LIBRARY IEEE; -32位計(jì)數(shù)器 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.AL

34、L; ENTITY COUNTER32B IS PORT (FIN : IN STD_LOGIC; - 時鐘信號 CLR : IN STD_LOGIC; - 清零信號 ENABL : IN STD_LOGIC; - 計(jì)數(shù)使能信號 DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); - 計(jì)數(shù)結(jié)果 END COUNTER32B; ARCHITECTURE behav OF COUNTER32B IS SIGNAL CQI : STD_LOGIC_VECTOR(31 DOWNTO 0); BEGIN PROCESS(FIN, CLR, ENABL) BEGIN IF

35、CLR = 1 THEN CQI 0); - 清零 ELSIF FINEVENT AND FIN = 1 THEN IF ENABL = 1 THEN CQI = CQI + 1; END IF; END IF; END PROCESS; DOUT = CQI; END behav;,接下頁,【例7-10】 LIBRARY IEEE; -頻率計(jì)頂層文件 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FREQTEST IS PORT ( CLK1HZ : IN STD_LOGIC; FSIN : IN STD_LOGIC; DOUT : OU

36、T STD_LOGIC_VECTOR(31 DOWNTO 0) ); END FREQTEST; ARCHITECTURE struc OF FREQTEST IS COMPONENT FTCTRL PORT (CLKK : IN STD_LOGIC; - 1Hz CNT_EN : OUT STD_LOGIC; - 計(jì)數(shù)器時鐘使能 RST_CNT : OUT STD_LOGIC; - 計(jì)數(shù)器清零 Load : OUT STD_LOGIC ); - 輸出鎖存信號 END COMPONENT; COMPONENT COUNTER32B PORT (FIN : IN STD_LOGIC; - 時鐘信

37、號 CLR : IN STD_LOGIC; - 清零信號 ENABL : IN STD_LOGIC; - 計(jì)數(shù)使能信號 DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); - 計(jì)數(shù)結(jié)果 END COMPONENT;,KX康芯科技,COMPONENT REG32B PORT ( LK : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END COMPONENT; SIGNAL TSTEN1 : STD_LOGIC;

38、SIGNAL CLR_CNT1 : STD_LOGIC; SIGNAL Load1 : STD_LOGIC; SIGNAL DTO1 : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL CARRY_OUT1 : STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN U1 : FTCTRL PORT MAP(CLKK =CLK1HZ,CNT_EN=TSTEN1, RST_CNT =CLR_CNT1,Load =Load1); U2 : REG32B PORT MAP( LK = Load1, DIN=DTO1, DOUT = DOUT); U3 :

39、COUNTER32B PORT MAP( FIN = FSIN, CLR = CLR_CNT1, ENABL = TSTEN1, DOUT=DTO1 ); END struc;,實(shí)驗(yàn)與設(shè)計(jì),KX康芯科技,7-2. 8位16進(jìn)制頻率計(jì)設(shè)計(jì),圖7-56 頻率計(jì)測頻控制器FTCTRL測控時序圖,實(shí)驗(yàn)與設(shè)計(jì),KX康芯科技,7-2. 8位16進(jìn)制頻率計(jì)設(shè)計(jì),圖7-57 頻率計(jì)電路框圖,實(shí)驗(yàn)與設(shè)計(jì),KX康芯科技,7-3. 利用LPM_ROM設(shè)計(jì)乘法器 (1) 實(shí)驗(yàn)原理:硬件乘法器有多種設(shè)計(jì)方法,但相比之下,由LPM_ROM構(gòu)成的乘法表方式的乘法器的運(yùn)算速度最快。這里定制LPM_ROM的地址位寬為8;地址輸

40、入由時鐘inclock的上升沿鎖入;數(shù)據(jù)位寬也為8。最后為ROM配置乘法表數(shù)據(jù)文件。 LPM_ROM中作為乘法表的數(shù)據(jù)文件rom_data.mif如例7-11所示。其中的地址/數(shù)據(jù)表達(dá)方式是,冒號左邊寫ROM地址值,冒號右邊寫對應(yīng)此地址放置的16進(jìn)制數(shù)據(jù)。如4728,表示47為地址,28為該地址中的數(shù)據(jù),這樣,地址高4位和低4位可以分別看成是乘數(shù)和被乘數(shù),輸出的數(shù)據(jù)可以看成是它們的乘積。,KX康芯科技,【例7-11】 WIDTH = 8 ; DEPTH = 256 ; ADDRESS_RADIX = HEX ; DATA_RADIX = HEX ; CONTENT BEGIN 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

溫馨提示

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

最新文檔

評論

0/150

提交評論