1、Quartus实验报告1和使用教程课 程 名 称 通信系统集成电路设计 实 验 名 称 Quartus II实验一 专 业 班 级 姓 名 学 号 日 期 _ 2012.12.11_实验一: 16进制加法器1. 实验目的a) 熟悉QuartusII及Modelsim软件的使用方法。掌握用QuartusII软件对VHDL源程序进行编译、修改和Modelsim软件对实验结果的调试、波形仿真。b) 学习编写VHDL程序。c) 编写、调试出16进制计数器的程序,仿真出波形。2. 实验环境a) Quartus II 9.0 (32-Bit)b) ModelSim-Altera 6.4a (Quartus
2、 II 9.0)c) WinXP操作系统3. 实验内容a) 用Quartus II软件编写16进制加法器,并调试通过;b) 再用Quartus II编写VHDL测试向量文件;c) 用Modelsim仿真结果。4. 实验要求a) 熟悉Quartus II和Modelsim软件,配置好相关环境。b) 编写16进制加法器的VHDL程序。c) 使用Quartus II编译,查找错误并修改到正确无误。d) 使用Model仿真,生成波形文件。e) 书写实验报告。5. 实验步骤及结果i. 建立工程并加入16进制模块和测试平台。a) 新建工程。点击菜单栏 file New Project Wizard,出现如
3、下Wizard界面,点击Next。输入项目名称。后点击Finish,完成项目的创建.暂时不用选择芯片的型号.b) 建立文件。点击菜单栏file New,点击选择VHDL File,然后OK。在编辑区内编写16进制加法器模块的代码。然后保存文件,输入要保存的名字。我们这里保存为counter.vhd。同理,按以上的步骤编写测试平台的文件,另存为tb_counter.vhd。如下图所示。ii. 设置软件环境,开始调试文件。1. 点击菜单栏里Assignments Settings,出现这个界面,修改如下图中所示。在NativeLink settings里勾选Compile test bech,点击
4、Test Benches,在弹出的对话框中点击New,出现如下画面,按图填写各内容,点击file name选择刚才写的Test bench文件后一路点OK.2. 点击Tools Options,将Modelsim-Altera的路径填写到图示的位置。点击OK进行保存设置。点击Processing-Start Compilation, 程序编译成功,出现成功编译的对话框(其中的6 warnings不用理会),点击确定。iii. 用Modelsim仿真及显示结果。点击菜单栏Tools Run EDA Smuliation Tools EDA RLT Simulation此时会启动Modelsim开
5、始仿真,等待一小段时间后点击break停止仿真.。在波形图区按键盘I/O会放大/缩小,就会出现预期的波形结果.说明程序正确,仿真步骤也正确。6. 问题总结a) 编辑完VHDL文件后保存的文件名一定要和程序实体名一致,后缀为vhd,否则会报错;b) 一般仿真出现error必须处理,但是warning不用理会;c) 仿真时不应该点击下图的中间那个蓝色按钮,这个仿真是编写波形文件才用的仿真.编写测试向量后要仿真的正确步骤应该是: 点击菜单栏Tools Run EDA Smuliation Tools EDA RLT Simulation;d) test bench里的选项要如图设置好,也必须把tes
6、t bench文件添加进来。这里的选项比较多,不能马虎。7. 实验结论:QuartusII和Modelsim软件环境设置比较多,学习时要认真细心。VHDL语言是硬件语言,一般是并行执行,与C语言等软件语言不太一样,这点学习时要注意。VHDL有些关键词也比较特别,例如eslif不能错写成elseif。通过本实验编写的16进制加法器和仿真结果,我们能清楚和直观地看到16进制加法器的基本功能。在调试过程中出现的error信息要特别关注,根据错误提示信息,对其进行正确改正。通过这次实验,我掌握EDA工具QuartusII软件的基本使用方法,能够建立项目并编写程序和调试、仿真,也加强了VHDL程序的编写
7、能力。8. 附程序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 issignal i
8、nner_reg : std_logic_vector(3 downto 0);begin dataout=inner_reg; process(clock,reset) begin if (reset = 1) then inner_reg = 0000; elsif(clockevent and clock=1) then inner_reg 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;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1