宏功能模块与IP应用实验与设计
宏功能模块与宏功能模块与宏功能模块与宏功能模块与IPIPIPIP应用实验与应用实验与应用实验与应用实验与设计设计设计设计EDA EDA 技术实用教程技术实用教程实验与设计实验与设计 7-1.正弦信号发生器设计正弦信号发生器设计(1)实实验验目目的的:进进一一步步熟熟悉悉QuartusII及及其其LPM_ROM与与FPGA硬硬件件资资源源的的使用方法。使用方法。(2)实验原理:)实验原理:参考本章相关内容。参考本章相关内容。(3)实实验验内内容容1:根根据据例例7-4,在在Quartus II上上完完成成正正弦弦信信号号发发生生器器设设计计,包包括括仿仿真真和和资资源源利利用用情情况况了了解解(假假设设利利用用Cyclone器器件件)。最最后后在在实实验验系系统统上上实实测测,包包括括SignalTap II测测试试、FPGA中中ROM的的在在系系统统数数据据读读写写测测试试和和利利用用示波器测试。最后完成示波器测试。最后完成EPCSx配置器件的编程。配置器件的编程。(4)实实验验内内容容2:按按照照图图7-49所所示示,用用原原理理图图方方法法设设计计正正弦弦信信号号发发生生器器,要要调调用用3个个LPM模模块块来来构构成成:1、PLL,输输入入频频率率20MHz,32MHz单单频频率率输输出出;2、6位位二二进进制制计计数数器器;3、LPM ROM,加加载载的的波波形形数数据据同同上上。注注意意,硬硬件件实实现现时时可可以以通通过过SignalTapII观观察察波波形形,但但不不能能用用0832输输出出,波波形形必必须须用用高高速速DAC输出。输出。实验与设计实验与设计 图图7-55 调用了调用了PLL元件信号发生器原理图元件信号发生器原理图 实验与设计实验与设计 7-1.正弦信号发生器设计正弦信号发生器设计(5)实实验验内内容容3:修修改改例例7-3的的数数据据ROM文文件件,设设其其数数据据线线宽宽度度为为8,地地址址线线宽宽度度也也为为8,初初始始化化数数据据文文件件使使用用MIF格格式式,用用C程程序序产产生生正正弦弦信信号号数数据据,最后完成以上相同的实验。最后完成以上相同的实验。(6)实实验验内内容容4:设设计计一一任任意意波波形形信信号号发发生生器器,可可以以使使用用LPM双双口口RAM担担任任波波形形数数据据存存储储器器,利利用用单单片片机机产产生生所所需需要要的的波波形形数数据据,然然后后输输向向FPGA中中的的RAM(可可以以利利用用GW48系系统统上上与与FPGA接接口口的的单单片片机机完完成成此此实实验验,D/A可可利用系统上配置的利用系统上配置的0832或或5651高速器件)。高速器件)。(7)实实验验报报告告:根根据据以以上上的的实实验验内内容容写写出出实实验验报报告告,包包括括设设计计原原理理、程程序序设计、程序分析、仿真分析、硬件测试和详细实验过程。设计、程序分析、仿真分析、硬件测试和详细实验过程。实验与设计实验与设计 7-2.8位位16进制频率计设计进制频率计设计(1)实验目的:实验目的:设计设计8位位16进制频率计,学习较复杂的数字系统设计方法。进制频率计,学习较复杂的数字系统设计方法。(2)实实验验原原理理:根根据据频频率率的的定定义义和和频频率率测测量量的的基基本本原原理理,测测定定信信号号的的频频率率必必须须有有一一个个脉脉宽宽为为1秒秒的的输输入入信信号号脉脉冲冲计计数数允允许许的的信信号号;1秒秒计计数数结结束束后后,计计数数值值被被锁锁入入锁锁存存器器,计计数数器器清清0,为为下下一一测测频频计计数数周周期期作作好好准准备备。测测频频控控制制信信号号可可以以由由一一个个独独立立的的发发生生器器来来产产生生,即即图图7-57中中的的FTCTRL。根根据据测测频频原原理理,测频控制时序可以如图测频控制时序可以如图7-56所示。所示。设设计计要要求求是是:FTCTRL的的计计数数使使能能信信号号CNT_EN能能产产生生一一个个1秒秒脉脉宽宽的的周周期期信信号号,并并对对频频率率计计中中的的32位位二二进进制制计计数数器器COUNTER32B(图图7-57)的的ENABL使使能能端端进进行行同同步步控控制制。当当CNT_EN高高电电平平时时允允许许计计数数;低低电电平平时时停停止止计计数数,并并保保持持其其所所计计的的脉脉冲冲数数。在在停停止止计计数数期期间间,首首先先需需要要一一个个锁锁存存信信号号LOAD的的上上跳跳沿沿将将计计数数器器在在前前1秒秒钟钟的的计计数数值值锁锁存存进进锁锁存存器器REG32B中中,并并由由外外部部的的16进进制制7段段译译码码器器译译出出,显显示示计计数数值值。设设置置锁锁存存器器的的好好处处是是数数据据显显示示稳稳定定,不不会会由由于于周周期期性性的的清清0信信号号而而不不断断闪闪烁烁。锁锁存存信信号后,必须有一清号后,必须有一清0信号信号RST_CNT对计数器进行清零,为下对计数器进行清零,为下1秒的计数操作作准备。秒的计数操作作准备。实验与设计实验与设计 7-2.8位位16进制频率计设计进制频率计设计(3)实实验验内内容容1:分分别别仿仿真真测测试试模模块块例例7-7、例例7-8和和例例7-9,再再结结合合例例7-10完完成成频频率率计计的的完完整整设设计计和和硬硬件件实实现现,并并给给出出其其测测频频时时序序波波形形及及其其分分析析。建建议议选选实实验验电电路路模模式式5;8个个数数码码管管以以16进进制制形形式式显显示示测测频频输输出出;待待测测频频率率输输入入FIN由由clock0输输入入,频频率率可可选选4Hz、256HZ、3Hz.50MHz等等;1HZ测测频频控控制制信信号号CLK1HZ可可由由clock2输输入入(用用跳跳线线选选1Hz)。注注意意,这这时时8个个数数码码管管的的测测频频显显示示值是值是16进制的。进制的。(4)实实验验内内容容2:参参考考例例4-22,将将频频率率计计改改为为8位位10进进制制频频率率计计,注注意意此此设设计计电电路路的的计计数数器器必必须须是是8个个4位位的的10进进制制计计数数器器,而而不不是是1个个。此此外外注注意意在在测测频频速度上给予优化。速度上给予优化。(5)实验内容实验内容3:用用LPM模块取代例模块取代例7-8和例和例7-9,再完成同样的设计任务。,再完成同样的设计任务。(6)实验报告:实验报告:给出频率计设计的完整实验报告。给出频率计设计的完整实验报告。【例【例7-7】LIBRARY IEEE;-测频控制电路测频控制电路USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FTCTRL IS PORT(CLKK:IN STD_LOGIC;-1Hz CNT_EN:OUT STD_LOGIC;-计数器时钟使能计数器时钟使能 RST_CNT:OUT STD_LOGIC;-计数器清零计数器清零 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;PROCESS(CLKK,Div2CLK)BEGIN IF CLKK=0 AND Div2CLK=0 THEN RST_CNT=1;-产生计数器清零信产生计数器清零信号号 ELSE RST_CNT=0;END IF;END PROCESS;Load =NOT Div2CLK;CNT_EN=Div2CLK;END behav;【例【例7-8】LIBRARY IEEE;-32位锁存器位锁存器USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B IS PORT(LK:IN STD_LOGIC;DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END REG32B;ARCHITECTURE behav OF REG32B ISBEGIN PROCESS(LK,DIN)BEGIN IF LKEVENT AND LK=1 THEN DOUT=DIN;END IF;END PROCESS;END behav;【例【例7-9】LIBRARY IEEE;-32位计数器位计数器USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTER32B IS PORT(FIN:IN STD_LOGIC;-时钟信号时钟信号 CLR:IN STD_LOGIC;-清零信号清零信号 ENABL:IN STD_LOGIC;-计数使能信号计数使能信号 DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);-计数结果计数结果 END COUNTER32B;ARCHITECTURE behav OF COUNTER32B IS SIGNAL CQI:STD_LOGIC_VECTOR(31 DOWNTO 0);BEGIN PROCESS(FIN,CLR,ENABL)BEGIN IF 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 CLK1HZ,CNT_EN=TSTEN1,RST_CNT=CLR_CNT1,Load=Load1);U2:REG32B PORT MAP(LK=Load1,DIN=DTO1,DOUT=DOUT);U3:COUNTER32B PORT MAP(FIN=FSIN,CLR=CLR_CNT1,ENABL=TSTEN1,DOUT=DTO1);END struc;实验与设计实验与设计 7-2.8位位16进制频率计设计进制频率计设计图图7-56 频率计测频控制器频率计测频控制器FTCTRL测控时序图测控时序图 实验与设计实验与设计 7-2.8位位16进制频率计设计进制频率计设计图图7-57 7-57 频率计电路框图频率计电路框图实验与设计实验与设计 7-3.利用利用LPM_ROM设计乘法器设计乘法器(1)实实验验原原理理:硬硬件件乘乘法法器器有有多多种种设设计计方方法法,但但相相比比之之下下,由由LPM_ROM构构成成的的乘乘法法表表方方式式的的乘乘法法器器的的运运算算速速度度最最快快。这这里里定定制制LPM_ROM的的地地址址位位宽宽为为8;地地址址输输入入由由时时钟钟inclock的的上上升升沿沿锁锁入入;数数据据位位宽宽也也为为8。最最后后为为ROM配置乘法表数据文件。配置乘法表数据文件。LPM_ROM中作为乘法表的数据文件中作为乘法表的数据文件rom_data.mif如例如例7-11所示。其中的地所示。其中的地址址/数据表达方式是,冒号左边写数据表达方式是,冒号左边写ROM地址值,冒号右边写对应此地址放置地址值,冒号右边写对应此地址放置的的16进制数据。如进制数据。如4728,表示,表示47为地址,为地址,28为该地址中的数据,这样,地址为该地址中的数据,这样,地址高高4位和低位和低4位可以分别看成是乘数和被乘数,输出的数据可以看成是它们的位可以分别看成是乘数和被乘数,输出的数据可以看成是它们的乘积。乘积。【例【例7-11】WIDTH=8;WIDTH=8;DEPTH=256;DEPTH=256;ADDRESS_RADIX=HEX;ADDRESS_RADIX=HEX;DATA_RADIX=HEX;DATA_RAD