FPGA应用技术实验讲义.docx
20页实验一 Quartus II软件及EDA实验平台介绍 1实验二 Quartus II设计输入 4实验三D、T 触发器 6实验四十六进制数码管显示 7实验五3-8译码器设计 9实验六锁存器的设计 12实验七宏功能模块的应用 13实验八4选1多路选择器 17实验一 Quartus II软件及EDA实验平台介绍(1) 实验目的:熟悉Quartus II软件的使用,学习其操作过程及仿真过程2) 实验内容:学习使用Quartus II对程序进行编辑输入、编译及仿真1、 打开QuartusII软件2、 选择路径选择File/New Project Wizard,指定工作目录,指定工程和 顶层设计实体称;注意:工作目录名不能有中文3、添加设计文件将设计文件加入工程中单击“Next”,如果有巳经建 立好的VHDL或者原理图等文件可以在File name中选择路径然后添加,或者选 择Add All添加所有可以添加的设计文件(.VHDL ..Verilog原理图等)如果 没有直接点击“Next”,等建立好工程后再添加也可,这里我们暂不添加4、选择FPGA器件oFamily选择Cyclone,Available device选EP1C12Q240C8, 点击“Next" o5、选择外部综合器、仿真器和时序分析器。
Quartus II支持外部工具,可 通过选中来指定工具的路径这里我们不做选择,默认使用Quartus II自带的 工具6、结束设置单击“Next”,弹出“工程设置统计”窗口,上面列出了工 程的相关设置情况最后单击“Finish”,结束工程设置8、添加文件到工程中VHDL原文件编辑完后,选择File/Save,选择和工 程相同的文件名点击“保存”,文件就被添加进工程当中library ieee;use ieee.std_logic_l 164.all;use ieee. std_logic_un signed. all;entity adder4b isport(clr,cin: in std_logic;a,b: in std_logic_vector(3 downto 0);s: out std_logic_vector(3 downto 0);cout:out std_logic);end adder4b;architecture art of adder4b issignal sint:std_logic_vector(4 downto 0);signal aa,bb:std_logic_vector(4 downto 0);beginaa<='0'&a;bbv='0'&b;sint<=aa+bb+cin;s<=sint(3 downto 0);cout<=sint(4);end art;9、编译。
选择 Processing/Start/Start Analysis&Synthesis,进行综合10、功能仿真验证,从菜单File-New中选择创建Vector Waveform FileOK Cancel在新的波形文件中选入需要验证的引脚,通过在左边窗栏理点击鼠标右键, 选Insert Node or Bus ..,在打开的对话框中点击List,选择所要观察的信号引脚,设置引脚的信号值,如下图所示点击保存Save.12 对在Settings对话框中,选中Simulator Settings选择页,设置Function 类型仿真,并将新创建的波形文件当作仿真输入,如下图所示:Simulatoi Settingsbraties (Current Project)Analysis Settings sol Settings sign E ntry/Synthesis lulation ling Analysis mal Verification ^sical Synthesis ard-Levelition Process Settings ly Timing Estimate remental Compilation ling Analysis Processing s & Synthesis Settings >ler 9 Assistantap II Logic Analyzer malyzer Interface 'robe Settingsor SettingsSelect simulation options.Simulation mode:| FunctionalFunctionalSimulation input: 二i二 • I I imingI,Timina usina Fast Timin。
ModelSimulation periodRun simulation until all vector stimuli are used£nd simulation at: |设置元毕之后,点击 Processing ->Generate Functional SimulatorNetList,生产网表文件之后,点击Start Simulator,进行功能仿真,然后验 证逻辑功能是否正确实验二Quartus II设计输入(1) 实验目的:① 熟悉Quartus II软件的使用及仿真过程;② 熟悉VHDL文本输入法及混合输入法2) 实验内容:(一)VHDL文本输入法1)使用VHDL文本输入法完成基本门的设计,学习使用Quartus II对程序进 行编辑输入、编译及仿真library ieee;fl<=a and b;--构成与门use iee.std_logic_l 164.all;f2<=a or b;--构成或门entity jbm isf<=not a;-构成非门port(a,b: in bit;f3<=a nand b;-构成与非门fl,f2,f3,f4,f5,f: out bit);f4<=a nor b;--构成异或门end jbm;f5<=not(a xor b);-构成异或非门即同门architecture a of jbm isend;begin(二)VHDL混合输入法1)实验原理表3-1半加器真值表abSOco0000011010101101so = a® b co = a-b建立一位半加器half adder工程: LIBRARY IEEE;USE IEEE. STD_L0GIC_U64. ALL;ENTITY HALF_ADDER ISPORT(A, B: IN STD_LOGIC:S, Co: OUT STD_LOGIC);END ENTITY HALF_ADDER;ARCHITECTURE RTL OF HALF ADDER IS—SIGNAL ABC: STD_LOGIC_VECTOR (1 DOWNTO 0):BEGINS <= NOT(A XOR (NOT B));Co <= A AND B;END ARCHITECTURE HD;2)实验内容:① 使用VHDL文本输入法完成一位半加器的设计,利用Quartus II对程序进 行编辑输入、编译及仿真;② 将半加器生成元件符号,执行菜单【File】-〉【Create/Update]->【Create symbol file for current file];③ 新建原理图文件,并添加刚生成新元件;Project Navigator • 1④ 连接电路图⑤ 指定顶层文件E3 FilesOpenRemove Kle from ProjectSet as Top-Level EntityPropertiesOpen in Main WindowV Enable DockingClose百Hierarci^T] H Files ],Design Units j(3) 实验报告:①写出文本输入实验的源程序,给出波形仿真结果。
②画 出一位全加器的原理图,写出一位半加器的实验源程序,最后给出一位全加器的 波形仿真结果实验三D、T触发器(1) 实验目的:熟悉QuartusII的VHDL文本设计过程,学习简单时序电路的设计、仿真2) 实验原理时序逻辑电路是现代复杂数字电路的重要组成部分,往往占到整个设计的 90%以上触发器是时序电路的基本单元,本实验将涉及到D触发器与T触发器, 采用的是边沿触发,边沿触发是实际电路实现的主要方式D触发器:在时钟上升沿时,输出q=d, qb=J;T触发器:在时钟上升沿的作用下,T=0输出不变,T=1输出翻转3) 实验内容:设计上升沿触发的同步复位的D触发器及上升沿触发的T触发器,分别利用 Quartus II对程序进行编辑输入、编译及仿真同步复位的D触发器library ieee;beginuse ieee.std_logic_l 164.all;if (clk'event and clk=T) thenuse ieee. std_logic_signed.all;if (reset='O') thenentity syndff isqv= qbv=T;port(d,elk,reset: in std_logic;elseq,qb:out stdjogic);q<=d; qb<=not q;end syndff;end if;architecture dffLart of syndff isend if;beginend process;process(clk)end dfLart;上升沿触发的T触发器源程序代码:library ieee;if rising_edge(clk) thenuse ieee.std_logic_l 164.all;ift=Tthenuse ieee.std_logic_signed.all;q_temp<=not q_temp;entity tff iselseport(t,clk: in std_logic;q_temp v=q_temp;q: out std_logic);end if;end;end if;architecture tff_art of tff isq<=q_temp;signal q_temp: std_logic;end process;beginq<=q_temp;pl:process(clk)end tffLart;begin(4)实验报告写出D触发器及T触发器的程序代码及原理,找出两个程序中的错误并改正, 说明其错误原因,最后给出两个触发器的波形仿真结果。
实验四十六进制数码管显示(1) 实验目的学习7段数码显示译码器设计,学习VHDL的case设计方法2) 实验仪器计算机一台,EL教学实验箱(EDA-VI) , QUARTUS II(3) 实验原理七段数码管由8个(a, b, c, d, e, f, g, dp)按照一定位置排列的发光二极管构 成,通常采。




