基于FPGA的多功能波形发生器设计课程设计

发布时间 : 星期五 文章基于FPGA的多功能波形发生器设计课程设计更新完毕开始阅读

图5芯片选择

图6创建VHDL File对话框

图7 VHDL语言编辑框

在图7所示的VHDL语言编辑框中依次输入分频器、四选一选择器、循环加法计数器等4钟计数器、七段译码器等功能模块的VHDL语言源程序。输入完成之后单击保存图标并输入相应的文件名。保存之后即可对源程序进行编译。如果编译成功则源程序完全正确,否则应该返回到出错处改正错误直至编译成功为止。编译成功之后再进行波形仿真,从中得出相应数据及现象。

3仿真结果

3.1编译警告

输入相应源代码,点击

,得出结果如图8

图8编译结果

程序在编译阶段出现了八个警告,以下面两个为例:

1.Warning (10492): VHDL Process Statement warning at mine4.vhd(232): signal \is read inside the Process Statement but isn't in the Process Statement's sensitivity list 2.Warning: Output pins are stuck at VCC or GND Warning (13410): Pin \

第一个警告,在process里作为被判断信号(if或者case后面的)或者赋值语句右端信号通常应该写在process的敏感信号表里。有些EDA工具不检查这个,可能会导致仿真结果与综合出来的电路不一致。实际上,综合工具在综合的时候会自动把这类信号添加到敏感信号表里,但仿真工具不会,而是完全按照代码体现的语意来仿真。

case y is --7段码译码 when 0 => lcd(7 downto 1)<=\ when 1 => lcd(7 downto 1)<=\ when 2 => lcd(7 downto 1)<=\ when 3 => lcd(7 downto 1)<=\ when 4 => lcd(7 downto 1)<=\ when 5 => lcd(7 downto 1)<=\ when 6 => lcd(7 downto 1)<=\ when 7 => lcd(7 downto 1)<=\ when 8 => lcd(7 downto 1)<=\ when 9 => lcd(7 downto 1)<=\ when others => lcd(7 downto 1)<=\ end case;

end process;

综合时,信号y被添加到敏感信号表中。

第二个警告,认为引脚p180直接到正电源了。

port(clk : in std_logic; --时钟信号输入

set, clr, up, down, zu, zd : in std_logic; --各个波形特征的调节触发信号 posting : in std_logic; --任意波键盘置入信号 u0,d0,sw : in std_logic; --方波A、B的切换sw,和方波B的幅度调节按键 ss : in std_logic_vector( 3 downto 0 ); --档位选择信号 sss : in std_logic_vector( 4 downto 0 ); --波形选择信号 Data3, Data2, Data1,Data0 : in std_logic_vector(3 downto 0); --BCD码输入 p180 : out std_logic; --预留接口 lcd : out std_logic_vector(7 downto 0); --显示输出 shift : out std_logic_vector(3 downto 0); --位码输出

dd, a : out std_logic_vector( 7 downto 0)); --波形、幅度数据输出

但实际上引脚p180是预留接口未用。

3.2编译结果

图9 编译结果

3.3建立仿真文件

在编译通过后,要建立后缀为vwf的仿真波形文件。执行菜单命令,选

择new,再选择需要的Vector Waveform File,单击ok。在波形文件编辑方式下,右键选择insert添加信号节点,设置相应的参数。如下图所示。

联系合同范文客服:xxxxx#qq.com(#替换为@)