为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于VHDL的16进制计数器的程序设计

2019-06-03 13页 doc 39KB 24阅读

用户头像

is_574951

暂无简介

举报
基于VHDL的16进制计数器的程序设计 FPGA实验报告 实验课程名称      通信系统集成电路设计     实验项目名称      Quartus II实验操作      专 业 班 级            通信一班            学 生 姓 名            刘雷杰            学        号          3009204128          指 导 教 师            陈为刚            实验一:Quartus II操作及16进制加法器 1. 实验目的 a) 熟悉熟悉EDA工具Q...
基于VHDL的16进制计数器的程序设计
FPGA实验报告 实验课程名称      通信系统集成电路     实验项目名称      Quartus II实验操作      专 业 班 级            通信一班            学 生 姓 名            刘雷杰            学        号          3009204128          指 导 教 师            陈为刚            实验一:Quartus II操作及16进制加法器 1. 实验目的 a) 熟悉熟悉EDA工具QuartusII及modelsim软件的使用方法。掌握用quartus ii或其他EDA软件对VHDL源程序进行编译、调试、修改、波形仿真。 b) 学习VHDL程序的软件及硬件的编写及仿真方法并熟练掌握VHDL程序的编写方法和注意事项。 c) 编写、调试出16进制计数器的程序,仿真出波形。 d) 在上面的基础上做出PCM9程序,并仿真出波形数据。 2. 实验器材 a) 电脑中要有Quartus II 软件 b) 电脑中要有Modelsim软件 3. 实验 a) 熟悉Quartus II和modelsim软件,并将两个软件进行配置,使软件可以用于为后面的软件进行调试。 b) 尽量自己编写VHDL程序,做16进制的计数器实验,包括计数器程序和测试平台。 c) 了解模块设计方法和思想,并设计并搭建测试平台。 4. 实验要求 a) 熟悉两个软件并配置好相关环境。 b) 编写实验用的VHDL程序。 c) 使用Quartus II编译,查找错误并修改到正确无误。 d) 使用Quartus II仿真,生成波形文件。 e) 保存相关文件,并写实验报告。 5. 实验步骤及结果 a) 建立工程并加入16进制模块和测试平台。 1. 建立工程。 在菜单栏里有 fileNew Project Wizard,点击Next到这个界面。输入项目名称。后点击Finish,完成项目的创建。 2. 建立文件。 在菜单栏里有 fileNew,跳转到下面这个界面。点击选择VHDL File,这个选项后点击OK。 到环境中,写模块代码。 然后保存文件,按CTR+S。出现下面的界面,输入要保存的名字。我们这里保存为counter.vhd。 同理,同样的步骤编写测试平台的文件tb_counter.vhd。 下面是二个图。 b) 配置相应环境,并调试。 1. 在菜单栏里AssignmentsSettings,出现这个界面,修改如下图中所示。 2. 同样在ToolsOptions,会出现下面的界面,对其进行了如下的设置。点击OK进行保存设置。 最后经过几次实验编译成功了,出现了如下的对话框。 点击Ok就可以了。 c) 仿真及结果。 在菜单栏里ToolsRun EDA  Smuliation ToolsEDA RLT Simulation 就会出现要进行仿真的结果如下图所示 6. 实验总结 a) 实验中在写完两个文件后出现了如下的错误: Error: Top-level design entity "test_counter_16" is undefined, 从网上找到原因如下: 存的文件名和结构体名字不一致,在quartus软件中要求这样做,不然就出错。 解决方法一:改 结构体或文件保存名 使其名字一致。(这是一般的方法) 解决方法二:点击project菜单,然后再点击set as Top-level Entity(就是倒数第二行)下就行。(这是软件自带的方法) 用第一方法,问题解决。 编译成功。 b) 在进行modelsim波形输出的过程中,遇到过没有波形输出,查看了一下,认为是test bench没有设置正确,所以就会出现这种情况,把检查环境的互调配置修改为如下就正确了。 c) 实验总结:实验要认真细心,通过本实验,知道了VHDL具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门电路级三个不同层次的设计,能够完成从上层到下层(从抽象到具体)逐层描述的结构化设计思想。要注意在程序编写过程中出现的错误提示信息,对其进行正确改正,基本上掌握EDA工具QuartusII软件的使用方法,并学会了用QuartusII软件建立项目并编写程序和调试下载的方法,基本上熟悉了VHDL程序的软件的仿真方法,也熟练掌握VHDL程序的编写方法和注意事项。 7. 附录 a) 模块程序(counter.vhd) library IEEE; use IEEE.STD_LOGIC_1164.ALL; --use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter is Port( reset : in std_logic; clock : in std_logic; dataout : out std_logic_vector(3 downto 0) ); end counter; architecture Behavioral of counter is signal inner_reg : std_logic_vector(3 downto 0);        begin dataout <= inner_reg; process(clock,reset) begin if (reset = '1') then inner_reg <= "0000"; elsif(clock'event and clock='1') then inner_reg <= inner_reg+"0001"; end if; end process; end Behavioral; b) 测试平台(tb_counter.vhd) LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.all; USE ieee.numeric_std.ALL; ENTITY tb_counter IS END tb_counter; ARCHITECTURE behavior OF tb_counter IS -- Component Declaration for the Unit Under Test (UUT) COMPONENT counter Port( reset : in std_logic; clock : in std_logic; dataout : out std_logic_vector(3 downto 0) ); END COMPONENT; --Inputs SIGNAL clk :  std_logic := '0'; SIGNAL rst :  std_logic := '0'; --Outputs SIGNAL dataout1 :  std_logic_vector(3 downto 0); BEGIN -- Instantiate the Unit Under Test (UUT) uut: counter PORT MAP( reset => rst, clock => clk, dataout => dataout1 ); --clkgen: clk_gen: process begin clk<='0'; wait for 100 ns; loop clk<=not clk; wait for 6.25 ns; end loop; end process; reset_gen: process begin rst<='1'; wait for 1200 us; rst<='0'; wait; end process; END;
/
本文档为【基于VHDL的16进制计数器的程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索