最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

EDA技术-VHDL-5.12正弦信号发生器

来源:动视网 责编:小OO 时间:2025-10-02 03:34:20
文档

EDA技术-VHDL-5.12正弦信号发生器

5.12.正弦信号发生器程序设计与仿真实验1实验目的熟悉QuartusII及其LPM_ROM与FPGA硬件资源的使用方法。2实验原理正弦信号发生器的结构由3部分组成,数据计数器或地址发生器、数据ROM和D/A。性能良好的正弦信号发生器的设计,要求此3部分具有高速性能,且数据ROM在高速条件下,占用最少的逻辑资源,设计流程最便捷,波形数据获最方便。图5.12.1所示是此信号发生器结构图,顶层文件SINGT.VHD在FPGA中实现,包含2个部分:ROM的地址信号发生器由5位计数器担任,和正弦数据R
推荐度:
导读5.12.正弦信号发生器程序设计与仿真实验1实验目的熟悉QuartusII及其LPM_ROM与FPGA硬件资源的使用方法。2实验原理正弦信号发生器的结构由3部分组成,数据计数器或地址发生器、数据ROM和D/A。性能良好的正弦信号发生器的设计,要求此3部分具有高速性能,且数据ROM在高速条件下,占用最少的逻辑资源,设计流程最便捷,波形数据获最方便。图5.12.1所示是此信号发生器结构图,顶层文件SINGT.VHD在FPGA中实现,包含2个部分:ROM的地址信号发生器由5位计数器担任,和正弦数据R
5.12. 正弦信号发生器程序设计与仿真实验

1实验目的

熟悉QuartusII及其LPM_ROM与FPGA硬件资源的使用方法。

2实验原理

正弦信号发生器的结构由3部分组成,数据计数器或地址发生器、数据ROM和D/A。性能良好的正弦信号发生器的设计,要求此3部分具有高速性能,且数据ROM在高速条件下,占用最少的逻辑资源,设计流程最便捷,波形数据获最方便。图5.12.1所示是此信号发生器结构图,顶层文件SINGT.VHD在FPGA中实现,包含2个部分:ROM的地址信号发生器由5位计数器担任,和正弦数据ROM,其原理图如图5.12.2所示。拒此,ROM由LPM_ROM模块构成能达到最优设计,LPM_ROM底层是FPGA中的EAB或ESB等。地址发生器的时钟CLK的输入频率f0与每周期的波形数据点数(在此选择点)以及D/A输出的频率f的关系是: 

 

图5.12.1 正弦信号发生器结构图

图5.12.2 正弦信号发生器原理图

3 实验内容

在Quartus II上完成正弦信号发生器设计,包括仿真和资源利用情况了解(假设利用Cyclone器件)。最后在实验系统上实测,包括SignalTap II测试、FPGA中ROM的在系统数据读写测试和利用示波器测试。最后完成EPCS1配置器件的编程。

4 实验预习与思考

如果CLK的输入频率是50MHz,ROM中一个周期的正弦波数据是128个,要求输出的正弦波频率不低于150KHz,DAC0832是否能适应此项工作?为什么?

5 原理图的建立与仿真

(1) 为此工程建立文件夹,文件夹名为zxb

(2) 建立原理图文件, 单击New→Device Dising→Block Diagram/Schematic file→OK,弹出原理图窗口如图5.12.3所示,

图5.12.3 原理图建立窗口

(3) 双击原理图窗口的任意处弹出如图5.12.4窗口,在窗口的Name处输入input(输入节点),点击ok,然后保存,文件名为cnt.

图5.12.4 原理图输入窗口

(4) 创建工程与第2章2.1节的方法相同。

(5)六位二进制计数器原理图的生成方法

①建立VHDL语言的原理图,

    单击工具栏的File→New→Device Dising→VHDL File→OK,弹出原程序输入窗口,将原程序写入。原程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNT6b IS

    PORT (CLK,RST,EN : IN STD_LOGIC;                     

                     CQ : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);     

END CNT6b;

ARCHITECTURE behav OF CNT6b IS

BEGIN

 计数器异步复位

       ELSIF CLK'EVENT AND CLK='1' THEN   --检测时钟上升沿

        IF EN = '1' THEN   --检测是否允许计数(同步使能)

             CQI := CQI + 1;   --允许计数

CQ<=CQI;

END behav;

②存盘,命名.

③生成原理图

  单击工具栏的File→Credte Update→ Create Symbol Files for Current File。此处要等待一点时间,检查原代码是否正确,若没问题将弹出原理图建立成功的提示如图5.12.5所示。

图5.12.5 原理图建立成功提示

④双击已创建的cnt原理图窗口弹出图5.12.6窗口,单击窗口左上脚Project即可看到刚才建好的CNT6b工程文件,用鼠标左键选择CNT6b,再单击ok即可将cnt6原理图模块调入原理图窗口。

图5.12.6 调出已建好的CNT6b工程文件

⑤输出、输入节点复制有多种方法:按住键盘上的Ctrl键,然后用鼠标拖动输入节点即可完成复制,也可以采用复制粘贴的方法,或者在从元件库中再调输入、输出节点。

(6)定制LPM_ROM元件

 ①单击File →New→other Files→Hexadecimal[lntel-Fmat]File] (16进制格式),弹出图5.12.7窗口,将255改成,单击OK进入下一个窗口如图5.12.8所示。在图5.12.8窗口中输入正弦波的个点,输入完成存盘。

图5.12.7 正弦波的个点文件生成

图5.12.8 正弦波的个点的输入

②调用ROM方法:打开MegaWizard Plug-In Manager初始对话框。在Tools菜单中选择MegaWizard Plug-In Manager,产生如图5.12.9的界面,选择Create a new custom…项,定制一个新的模块(如果要修改一个已编好的LPM模块,则选择Edit an existing custom…项)。单击Next按钮后,进入图5.12.10窗口,在左栏选择Storage项下的LPM_ROM,再选择Cyclone器件和VHDL语言方式;最后输入ROM文件存放的路径和文件名:E\\zxb\\rom6.vhd。

图5.12.9 定制新的宏模块

图5.12.10 LPM宏模块设定

③设置完成单击Next进入图5.12.11窗口,选择ROM控制线、地址线和数据线。在图5.12.11和5.12.12窗口中选择地址线位宽和ROM中数据数分别为8和,在“What should the RAM block tybe be”选择默认的Auto.;选择地址锁存控制信号inclock。

图5.12.11 器件参数设置

图5.12.12 选择地址锁存信号

④设置完成单击next按钮进入图5.12.13所示窗口。在图5.12.13所示窗口的“Do you want to…”栏上选择“Yes, use this for the memory content data”项,并按Browse按钮,选择指定路径上的文件cnt.hex。

在“Allow in-System Memory…”栏上选择打勾,并在“The Instance ID of this ROM”栏输入roma,作为此ROM进行“在系统”测试和读写(如果需要读写多个嵌入式的LPM_ROM或 LPM_RAM ,ID号roma就作为此 ROM的识别名称),这种读写不影响 FPGA 中电子系统的正常工作。

图5.12.13 调入ROM初始化数据文件并选择在系统读写功能

⑤连续单击next按钮,最后单击按钮完成。

(6)仿真

 仿真方法与计数器的仿真方法相同。正弦波RTL电路如图5.12.14所示,仿真结果如图5.12.15所示,从图5.12.15中可知正弦波的输出结果是按16进制显示个点,但为了图的清楚,该图只显示了部分结果。

图5.12.14 RTL电路

图5.12.15 正弦波仿真结果

(6)引脚下载配置

 引脚下载配置可参考2.2节的方法,电路结构选择模式5(N0.5),其引脚具体设置如图5.12.16所示。

图5.12.16引脚设置

(7)嵌入式逻辑分析仪的设置

嵌入式逻辑分析仪的设置可参考第2章的2.3节的方法,其分析结果如图5.12.17所示。图中Q的输出方式是可选择的,用鼠标右键单击,在弹出的快捷菜单中选择Bus Display Format→Unsigned Line Chart。用同样的方法可设置cnt6b的输出方式,在弹出的块捷菜单中选择Bus Display Format→Signed Line Char.

图5.12.17 逻辑分析仪分析结果

从逻辑分析仪的输出结果可以看出q的输出为正弦波,cnt6b的输出采用的是有符号线性输出方式。信号输出的D/A使用实验系统上的DAC0832,注意其转换速率是1μs。其引脚功能简述如下:

ILE:数据锁存允许信号,高电平有效,系统板上已直接连在+5V上;WR1、WR2:写信号1、2,低电平有效;XFER:数据传送控制信号,低电平有效;VREF:基准电压,可正可负,-10V~+10V;RFB:反馈电阻端;IOUT1/IOUT2:电流输出端。D/A转换量是以电流形式输出的,所以必须将电流信号变为电压信号;AGND/DGND:模拟地与数字地。在高速情况下,此二地的连接线必须尽可能短,且系统的单点接地点须接在此连线的某一点上。

建议选择GW48系统的电路模式No.5,DAC0832的8位数据口D[7..0]分别与FPGA的PIO31、30..、24相连,如果目标器件是EP1CQ240,则对应的引脚是:21,41,128,132,133,134,135,136;时钟CLK接系统的clock0,对应的引脚是28,选择的时钟频率不能太高(转换速率1μs,)。还应该注意,DAC0832电路须接有+/-12V电压:GW48系统的+/-12V电源开关在系统左侧上方。然后下载SINGT.sof到FPGA中;波形输出在系统左下角,将示波器的地与GW48系统的地(GND)相接,信号端与“AOUT”信号输出端相接。如果希望对输出信号进行滤波,将GW48系统左下角的拨码开关的“8”向下拨,则波形滤波输出,向上拨则未滤波输出。 

6.实验报告

(1)详细分析各模块的逻辑功能,及其他们工作原理,详细记录并分析实验内容和实验内容的过程和结果,完成实验报告。

(2)本次实验体会。

7.实验练习题

按照本次实验的方法调出图5.12.7生成的正弦波个点文件,改变其中的任意3个点的数据,用逻辑分析仪重做分析。

文档

EDA技术-VHDL-5.12正弦信号发生器

5.12.正弦信号发生器程序设计与仿真实验1实验目的熟悉QuartusII及其LPM_ROM与FPGA硬件资源的使用方法。2实验原理正弦信号发生器的结构由3部分组成,数据计数器或地址发生器、数据ROM和D/A。性能良好的正弦信号发生器的设计,要求此3部分具有高速性能,且数据ROM在高速条件下,占用最少的逻辑资源,设计流程最便捷,波形数据获最方便。图5.12.1所示是此信号发生器结构图,顶层文件SINGT.VHD在FPGA中实现,包含2个部分:ROM的地址信号发生器由5位计数器担任,和正弦数据R
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top