您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 正弦信号发生器-文档
singt.设计正弦信号发生器正弦信号发生器的结构由四个部分组成:计数器或地址发生器(这里选6位)。正弦信号数据ROM(6位地址线,8位数据线),含有64个8位数据(一个周期)。VHDL顶层设计。8位D/A(实验中可用DAC0832代替)。信号输出的D/A使用实验系统上的DAC0832,注意其转换速率是1μs,其引脚功能简述如下:ILE:数据锁存允许信号,高电平有效,系统板上已直接连在+5V上;WR1、WR2:写信号1、2,低电平有效;XFER:数据传送控制信号,低电平有效;VREF:基准电压,可正可负,-10V~+10V;RFB:反馈电阻端;IOUT1/IOUT2:电流输出端。D/A转换量是以电流形式输出的,所以必须将电流信号变为电压信号;AGND/DGND:模拟地与数字地。在高速情况下,此二地的连接线必须尽可能短,且系统的单点接地点须接在此连线的某一点上。建议选择GEC_EP3C40系统的电路模式No.5,由附录对应的电路图可见,DAC0832的8位数据口D[7..0]分别与FPGA的PIO31、30..、24相连,如果目标器件是EP3C40T144,则对应的引脚是:72、71、70、69、68、67、52、51;时钟CLK接系统的clock0,对应的引脚是93,选择的时钟频率不能太高(转换速率1μs,)。还应该注意,DAC0832电路须接有+/-12V电压:GEC_EP3C40系统的+/-12V电源开关在系统左侧上方。然后下载SINGT.sof到FPGA中;波形输出在系统左下角,将示波器的地与GEC_EP3C40系统的地(GND)相接,信号端与“AOUT”信号输出端相接。如果希望对输出信号进行滤波,将GEC_EP3C40系统左下角的拨码开关的“8”向下拨,则波形滤波输出,向上拨则未滤波输出,这可从输出的波形看出。基本步骤如下一、顶层文件设计1创建工程和编辑设计文件正弦信号发生器的结构由3部分组成(图3-1):数据计数器或地址发生器、数据ROM和D/A。性能良好的正弦信号发生器的设计要求此3部分具有高速性能,且数据ROM在高速条件下,占用最少的逻辑资源,设计流程最便捷,波形数据获最方便。图3-1所示是此信号发生器结构图,顶层文件SINGT.VHD在FPGA中实现,包含2个部分:ROM的地址信号发生器由5位计数器担任,和正弦数据ROM,拒此,ROM由LPM_ROM模块构成能达到最优设计,LPM_ROM底层是FPGA中的EAB或ESB等。地址发生器的时钟CLK的输入频率f0与每周期的波形数据点数(在此选择64点),以及D/A输出的频率f的关系是:f=f0/64图singt-1正弦信号发生器结构图2创建工程建立工程SINGT,先要配置好一个ROM,来存储正弦信号的数据,ROM的位宽位8,大小为64;配置方法为:先配置好一个.mif或.hex数据存储文件,File-new-MemoryInitializationDile,如图singt-2,然后把正弦信号相应的数值输入进去,保存为sindata.mif文件;下面利用QuartusII软件中的MegaWizardPlug-InManager定制正弦信号数据ROM宏模块,并将以上的波形数据加载于此ROM中,定制方法Tools-MegaWizardPlug-InManager,如图singt-4,选createanewcustommegafunctionvariation,然后选一端口ROM,命名为sin_rom,然后选择8位宽,64个字大小,下面选择”M4K”-”singleclk”-”qoutputport”,如图singt-6,在对话框在的Filename中选择sindata.mif文件,后面按照默认值就配置完成。图singt-2图singt-3图singt-4图singt-5图singt-6图singt-73编写顶层代码,对ROM进行例化,程序如【程序singt-1】【程序singt-1】LIBRARYIEEE;--正弦信号发生器源文件USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSINGTISPORT(CLK:INSTD_LOGIC;--信号源时钟DOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--8位波形数据输出END;ARCHITECTUREDACCOFSINGTISCOMPONENTsin_rom--调用波形数据存储器LPM_ROM文件:sin_rom.vhd声明PORT(address:INSTD_LOGIC_VECTOR(5DOWNTO0);clock:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDCOMPONENT;SIGNALQ1:STD_LOGIC_VECTOR(5DOWNTO0);--设定内部节点作为地址计数器BEGINPROCESS(CLK)--LPM_ROM地址发生器进程BEGINIFCLK'EVENTANDCLK='1'THENQ1=Q1+1;--Q1作为地址发生器计数器ENDIF;ENDPROCESS;u1:sin_romPORTMAP(address=Q1,q=DOUT,clock=CLK);--例化END;编译前设置在对工程进行编译处理前,必须作好必要的设置。具体步骤如下:1、选择目标芯片;2、选择目标器件编程配置方式;3、选择输出配置;4、编译及了解编译结果5、正弦信号数据ROM定制(包括设计ROM初始化数据文件)另两种方法要快捷的多,可分别用C程序生成同样格式的初始化文件和使用DSPBuilder/MATLAB来生成。6仿真7引脚锁定、下载和硬件测试8使用嵌入式逻辑分析仪进行实时测试从输出的仿真波形可以看到,跟着时钟,ROM中的数据被一个个读出来了。9对配置器件EPCS4/EPCS1编程10了解此工程的RTL电路图图3-35工程singt的RTL电路图singt.设计正弦信号发生器(1)实验目的:进一步熟悉QuartusII及其LPM_ROM与FPGA硬件资源的使用方法。(2)实验原理:参考本章相关内容。(3)实验内容1:根据例7-4,在QuartusII上完成正弦信号发生器设计,包括仿真和资源利用情况了解(假设利用CycloneⅢ器件)。最后在实验系统上实测,包括SignalTapII测试、FPGA中ROM的在系统数据读写测试和利用示波器测试。最后完成EPCS1配置器件的编程。实验内容2:修改例7-3的数据ROM文件,设其数据线宽度为8,地址线宽度也为8,初始化数据文件使用MIF格式,用C程序产生正弦信号数据,最后完成以上相同的实验。实验内容3:设计一任意波形信号发生器,可以使用LPM双口RAM担任波形数据存储器,利用单片机产生所需要的波形数据,然后输向FPGA中的RAM(可以利用GEC_EP3C40系统上与FPGA接口的单片机完成此实验,D/A可利用系统上配置的0832或5651高速器件)。实验报告:根据以上的实验内容写出实验报告,包括设计原理、程序设计、程序分析、仿真分析、硬件测试和详细实验过程。
本文标题:正弦信号发生器-文档
链接地址:https://www.777doc.com/doc-5896509 .html