《EDA技术实用教程第五章-VHDL设计初步.ppt》由会员分享,可在线阅读,更多相关《EDA技术实用教程第五章-VHDL设计初步.ppt(99页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、EDAEDA技术技术实用教程实用教程第第5章章 z原理图输入与 VHDL文本输入设计的区别yGraphic is what you draw is what you getx“tell me what hardware you want and I will give it to you”yVHDL is what you write is what functional you getx“tell me how your circuit should behave and the VHDL compiler will give you the hardware that does the j
2、ob”x but the designer can not control how the circuit implement是什么是VHDL?Very high speed integrated Hardware Description Language(VHDL)y是IEEE、工业标准硬件描述语言y用语言的方式而非图形等方式描述硬件电路x容易修改x容易保存y特别适合于设计的电路有:x复杂组合逻辑电路,如:译码器、编码器、加减法器、多路选择器、地址译码器.x状态机x等等.VHDL的功能和标准的功能和标准z VHDL 描述y输入端口y输出端口y电路的行为和功能zVHDL有过两个标准:yIEEE
3、 Std 1076-1987(called VHDL 1987)yIEEE Std 1076-1993(called VHDL 1993)VHDL Synthesis vs.other HDLs SynthesiszVHDL:“tell me how your circuit should behave and I will give you hardware that does the job”zABEL,PALASM,AHDL:“tell me what hardware you want and I will give it to you”Why using VHDL instead o
4、f GraphiczEasy to ModifyzIt is more powerful than GraphiczVHDL is a portable language becauseyis device independentythe same code can be applied to Device manufactured by Company A or Company B【例5-1】ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS
5、 BEGIN y=a WHEN s=0 ELSE b ;END ARCHITECTURE one;实体结构体5.1 多路选择器多路选择器VHDL描述描述图图5-1 mux21a实体实体图图5-2 mux21a结构体结构体5.1.1 2选选1多路选择器的多路选择器的VHDL描述描述5.1.1 2选选1多路选择器的多路选择器的VHDL描述描述【例例5-2】ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e:BIT;BEGINd
6、=a AND(NOT S);e=b AND s;y=d OR e ;END ARCHITECTURE one;【例【例5-3】.ARCHITECTURE one OF mux21a IS BEGIN y=(a AND(NOT s)OR(b AND s);END ARCHITECTURE one;5.1.1 2选选1多路选择器的多路选择器的VHDL描述描述【例【例5-4】ENTITY mux21a IS PORT(a,b,s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS(a,b,s
7、)BEGIN IF s=0 THEN y=a;ELSE y=b;END IF;END PROCESS;END ARCHITECTURE one;5.1.1 2选选1多路选择器的多路选择器的VHDL描述描述图图5-3 mux21a功能时序波形功能时序波形5.1.2 VHDL相关语句说明相关语句说明1.1.实体表达实体表达【例【例5-5】ENTITY e_name IS PORT(p_name:port_m data_type;.p_namei:port_mi data_type);END ENTITY e_name;或:或:【例【例5-6】ENTITY e_name IS PORT(p_name
8、:port_m data_type;.p_namei:port_mi data_type);END e_name;5.1.2 VHDL相关语句说明相关语句说明2.2.实体名实体名3.3.PORTPORT语句和端口信号名语句和端口信号名4.4.端口模式端口模式INOUTINOUTBUFFER5.5.数据类型数据类型BITBIT5.1.2 VHDL相关语句说明相关语句说明6.6.结构体表达结构体表达【例【例5-7】ARCHITECTURE arch_name OF e_name IS (说明语句说明语句)BEGIN (功能描述语句功能描述语句)END ARCHITECTURE arch_name;
9、或:或:【例【例5-8】ARCHITECTURE arch_name OF e_name IS (说明语句说明语句)BEGIN (功能描述语句功能描述语句)END arch_name;7.7.信号传输信号传输(赋值赋值)符号和数据比较符号符号和数据比较符号5.1.2 VHDL相关语句说明相关语句说明8.8.逻辑操作符逻辑操作符ANDAND、OROR、NOTNOT9.9.IF_THENIF_THEN条件语句条件语句10.10.WHEN_ELSEWHEN_ELSE条件信号赋值语句条件信号赋值语句赋值目标赋值目标=表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋
10、值条件 ELSE .表达式表达式;11.11.PROCESSPROCESS进程语句和顺序语句进程语句和顺序语句12.12.文件取名和存盘文件取名和存盘5.1.3 VHDL设计的基本概念和语句小节设计的基本概念和语句小节数据类型信号赋值符条件比较符 延时实体结构体端口定义端口模式逻辑操作符IF条件语句并行条件语句进程语句顺序语句并行语句文件取名文件存盘5.2 寄存器描述及其寄存器描述及其VHDL语言现象语言现象5.2.1 D触发器的触发器的VHDL描述描述【例5-9】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 IS PORT(CLK:
11、IN STD_LOGIC;D:IN STD_LOGIC;Q:OUT STD_LOGIC);END;ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1:STD_LOGIC;-类似于在芯片内部定义一个数据的暂存节点 BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=D;END IF;Q=Q1;-将内部的暂存数据向端口输出 END PROCESS;END bhv;D触发器触发器比较用5种不同语句的D触发器VHDL程序Entity test1 isport(clk,d:in bit;q:out bit);end test
12、1;architecture body of test1 issignal q1:bit;beginprocess(clk)begin if clk=1 AND clklast_value=0 then q1=d;end if;q=q1;end process;end test1_body;LIBRARY IEEE;USE IEEE.std_logic_1164.all;Entity test1 isport(clk,d:in bit;q:out bit);end test1;architecture body of test1 isbeginprocess(clk,d)begin if ri
13、sing_edge(clk)then q=d;end if;end process;end test1_body;Entity test1 isport(clk:in bit;d:in bit;q:out bit);end test1;architecture body of test1 issignal q1:bit;beginprocess(clk,d)begin if(clk=1)then q1=d;end if;q=q1;end process;end body;Entity test1 isport(clk:in bit;d:in bit;q:out bit);end test1;a
14、rchitecture body of test1 issignal q1:bit;beginprocess(clk)begin if(clk=1)then q1=d;end if;q=q1;end process;end body;How Many Registers?ENTITY reg1 ISPORT(d:in BIT;clk:in BIT;q:out BIT);END reg1;ARCHITECTURE reg1 OF reg1 ISSIGNAL a,b:BIT;BEGINPROCESS(clk)BEGINIF clk=1 AND clkevent THENa=d;b=a;q=b;EN
15、D IF;END PROCESS;END reg1;How Many Registers?ENTITY reg1 ISPORT(d:in BIT;clk:in BIT;q:out BIT);END reg1;ARCHITECTURE reg1 OF reg1 ISBEGINPROCESS(clk)VARIABLE a,b:BIT;BEGINIF clk=1 AND clkevent THENa:=d;b:=a;q=b;END IF;END PROCESS;END reg1;用用VHDL设计设计4位计数器位计数器AB01010101取整数数据类型,为什么?整数取值范围端口信号模式取BUFFER,
16、为什么?注意整数和位的不同表达方式!修改后的程序运算符加载注意,信号注意,信号端口模式和端口模式和数据类型的数据类型的改变!改变!注意,引注意,引进内部信进内部信号矢量!号矢量!4位锁存器位锁存器组合电路加组合电路加1器器锁存信号锁存信号输出反馈输出反馈用用VHDL设计设计7段段16进制译码器进制译码器用用CASE语句完成真值表的功能语句完成真值表的功能向向7段数码段数码管输出信号,管输出信号,最高位控制最高位控制小数点小数点注意,此语句必须加入注意,此语句必须加入4位加法位加法计数器计数器7段译码器段译码器8位总线输出位总线输出信信号号输输出出数据对象信号Signal 和变量 Variabl
17、ezSignal Assignmentyreceive the assign value after a period of timezVariable Assignmentyhappens immediately when the statement is executed,no delaySignals vs.VariablesRepresent CircuitRepresent local storageInterconnectGlobal Scope(anywhere)Local Scope(inside process)Updated at end of PROCESSUpdated
18、 Immediately(new value not available)(new value available)SIGNALSVARIABLES UTILITY:SCOPE:BEHAVIOR:例1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT(i0,i1,i2,i3,a,b:IN STD_LOGIC;q:OUT STD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 ISsignal muxval:integer;BEGINprocess(i0,i1,i2,i3,a,b)b
19、eginmuxval=0;if(a=1)then muxval=muxval+1;end if;if(b=1)then muxval q q q q null;end case;end process;END body_mux4;Why?LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT(i0,i1,i2,i3,a,b:IN STD_LOGIC;q:OUT STD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 ISBEGINprocess(i0,i1,i2,i3,a,b)vari
20、able muxval:integer range 0 to 3;beginmuxval:=0;if(a=1)then muxval:=muxval+1;end if;if(b=1)then muxval:=muxval+2;end if;case muxval is when 0=q q q q null;end case;end process;END body_mux4;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTI
21、TY h_adder;ARCHITECTURE fh1 OF h_adder IBEGIN so=(a OR b)AND(a NAND b);co=NOT(a NAND b);END ARCHITECTURE fh1;用一位全加器设计用一位全加器设计1位二进制半加器位二进制半加器1位二进制全加器位二进制全加器内部端口外部端口端口连线5.2.2 D触发器触发器VHDL描述的语言现象说明描述的语言现象说明1.1.标准逻辑位数据类型标准逻辑位数据类型STD_LOGICSTD_LOGICBIT数据类型定义:TYPE BIT IS(0,1);TYPE BIT IS(0,1);STD_LOGIC数据类型定
22、义:TYPE STD_LOGIC IS(U,X,0,1,Z,W,L,H,-);TYPE STD_LOGIC IS(U,X,0,1,Z,W,L,H,-);STD_LOGIC所定义的9种数据的含义是:UU表示未初始化的;表示未初始化的;XX表示强未知的;表示强未知的;0 0表示强表示强逻辑逻辑0 0;1 1表示强逻辑表示强逻辑1 1;ZZ表示高阻态;表示高阻态;W W 表示弱未知的;表示弱未知的;LL表示弱逻辑表示弱逻辑0 0;HH表示弱表示弱逻辑逻辑1 1;-表示忽略。表示忽略。5.2.2 D触发器触发器VHDL描述的语言现象说明描述的语言现象说明2.2.设计库和标准程序包设计库和标准程序包3.
23、3.SIGNALSIGNAL信号定义和数据对象信号定义和数据对象【例5-10】ARCHITECTURE bhv OF DFF1 IS BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q=D;END IF;END PROCESS;END;使用库和程序包的一般定义表式是:LIBRARY LIBRARY ;USE USE .ALL;ALL;5.2.2 D触发器触发器VHDL描述的语言现象说明描述的语言现象说明4.4.上升沿检测表式和信号属性函数上升沿检测表式和信号属性函数EVENTEVENT 关键词EVENT是信号属性,VHDL通过以下表式来测定
24、某信号的跳变边沿:EVENTEVENT5.5.不完整条件语句与时序电路不完整条件语句与时序电路【例【例5-11】ENTITY COMP_BAD IS PORT(a1 :IN BIT;b1 :IN BIT;q1 :OUT BIT );END;ARCHITECTURE one OF COMP_BAD IS BEGIN PROCESS(a1,b1)BEGIN IF a1 b1 THEN q1=1;ELSIF a1 b1 THEN q1 b1 THEN q1=1;ELSE q1=0;END IF;END PROCESS;END 图图5-6 例例5-12的电路图的电路图5.2.3 实现时序电路的实现时序
25、电路的VHDL不同表达方式不同表达方式【例【例5-13】.PROCESS(CLK)BEGINIF CLKEVENT AND(CLK=1)AND(CLKLAST_VALUE=0)THEN Q=D;-确保确保CLK的变化是一次上升沿的跳变的变化是一次上升沿的跳变 END IF;END PROCESS;【例【例5-14】.PROCESS(CLK)BEGINIF CLK=1 AND CLKLAST_VALUE=0 -同例同例5-13 THEN Q=D;END IF;END PROCESS;5.2.3 实现时序电路的实现时序电路的VHDL不同表达方式不同表达方式【例【例5-15】LIBRARY IEEE
26、;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF3 IS PORT(CLK:IN STD_LOGIC;D :IN STD_LOGIC;Q:OUT STD_LOGIC);END;ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1:STD_LOGIC;BEGIN PROCESS(CLK)BEGIN IF rising_edge(CLK)-CLK的数据类型必须是的数据类型必须是STD_LOGIC THEN Q1=D;END IF;Q=Q1;END PROCESS;END;5.2.3 实现时序电路的实现时序电路的VHDL不同表达方式不同表达方式【例
27、5-16】.PROCESS BEGIN wait until CLK=1 ;-利用利用wait语句语句 Q=D;END PROCESS;【例5-17】.PROCESS(CLK)BEGIN IF CLK=1 THEN Q=D;-利用进程的启动特性产生对利用进程的启动特性产生对CLK的边沿检测的边沿检测 END IF;END PROCESS;【例5-18】.PROCESS(CLK,D)BEGIN IF CLK=1 -电平触发型寄存器电平触发型寄存器 THEN Q=D;END IF;END PROCESS;5.2.3 实现时序电路的实现时序电路的VHDL不同表达方式不同表达方式图图5-7 边沿型触发
28、器时序波形边沿型触发器时序波形图图5-8 电平触发型寄存器的时序波形电平触发型寄存器的时序波形5.2.4 异步时序电路设计异步时序电路设计 【例例5-19】.ARCHITECTURE bhv OF MULTI_DFF IS SIGNAL Q1,Q2:STD_LOGIC;BEGINPRO1:PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=NOT(Q2 OR A);END IF;END PROCESS;PRO2:PROCESS(Q1)BEGIN IF Q1EVENT AND Q1=1 THEN Q2=D;END IF;QQ=Q2;END PROCES
29、S;图图5-9 例例5-19综合的电路综合的电路5.2.5 VHDL设计基本概念和语言现象小节设计基本概念和语言现象小节数据类型数据对象信号属性时钟检测VHDL库程序包时序电路异步时序5.3 1位二进制全加器的位二进制全加器的VHDL设计设计图图5-10半加器半加器h_adder电路图电路图图图5-11 全加器全加器f_adder电路图电路图5.3.1 半加器描述和半加器描述和CASE语句语句absoco0000011010101101表表5-1 半加器半加器h_adder逻辑功能真值表逻辑功能真值表1.1.CASECASE语句语句CASE语句的一般表式是:语句的一般表式是:CASE ISWh
30、en =;.;;When =;.;;.END CASE;2.2.标准逻辑矢量数据类型标准逻辑矢量数据类型STD_LOGIC_VECTORSTD_LOGIC_VECTOR3.3.并置操作符并置操作符 以下是一些并置操作示例:以下是一些并置操作示例:SIGNAL a:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL d:STD_LOGIC_VECTOR(1 DOWNTO 0);.a =1 0 d(1)1 ;-元素与元素并置,并置后的数组长度为元素与元素并置,并置后的数组长度为4.IF a d=101011 THEN.-在在IF条件句中可以使用并置符条件句中可以使用并置符 5.
31、3.1 半加器描述和半加器描述和CASE语句语句在使用STD_LOGIC_VECTOR中,必须注明其数组宽度,即位宽,如:B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);或或 SIGNAL A:STD_LOGIC_VECTOR(1 TO 4)5.3.1 半加器描述和半加器描述和CASE语句语句【例5-20】LIBRARY IEEE;-或门逻辑描述 USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a IS PORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END ENTITY or2a;ARCHITECTURE one
32、 OF or2a IS BEGIN c=a OR b;END ARCHITECTURE fu1;【例5-21】LIBRARY IEEE;-半加器描述(1)USE IEEE.STD_LOGIC_1164.ALL;ENTITY adder IS PORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTITY adder;ARCHITECTURE fh1 OF adder is BEGIN so=NOT(a XOR(NOT b);co=a AND b;END ARCHITECTURE fh1;【例5-22】LIBRARY IEEE;-半加器描述(2)USE
33、 IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder is SIGNAL abc:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN abc so=0;co so=1;co so=1;co so=0;co NULL;END CASE;END PROCESS;END ARCHITECTURE fh1;【例5-22】.-半加器描述(3)SIGNAL abc,cso:STD
34、_LOGIC_VECTOR(1 DOWNTO 0);BEGIN abc=a&b ;co=cso(1);so cso cso cso csoain,b=bin,co=d,so=e);u2:h_adder PORT MAP(a=e,b=cin,co=f,so=sum);u3:or2a PORT MAP(a=d,b=f,c=cout);END ARCHITECTURE fd1;5.3.2 全加器描述和例化语句全加器描述和例化语句 元元件件例例化化语语句句由由两两部部分分组组成成,第第一一部部分分是是对对一一个个现现成成的的设设计计实实体体定定义义为为一一个个元元件件,语语句句的的功功能能是是对对待待
35、调调用用的的元元件件作作出出调调用用声声明明,它它的的最最简简表达式如下所示:表达式如下所示:COMPONENT 元件名元件名 IS PORT (端口名表端口名表);END COMPONENT 文件名文件名;元元件件例例化化语语句句的的第第二二部部分分则则是是此此元元件件与与当当前前设设计计实实体体(顶顶层层文文件件)中中元件间及端口的连接说明。语句的表达式如下:元件间及端口的连接说明。语句的表达式如下:例化名例化名:元件名元件名 PORT MAP(端口名端口名=连接端口名连接端口名,.);VHDL 设计流程:V-S-F-PVHDLEntryUse any Text Editor to inp
36、ut your designSynthesisUse any VHDL Compiler to convertyour language designto Gate level withoptimization in termof Speed/AreaFittingArchitecture SynthesisTo map the logicto Altera Device Architecturee.g.LUT,Carry/Cascade Chain,EAB.(further logic optimization)Perogr.Down LoadConfigure/Programming th
37、e Altera Deviceand do on board debugging,prototyping or productionSTEP1:建立 工作库文件夹STEP2:输入设计项目原理图/VHDL文本代码STEP3:存盘,注意 原理图/文本取名STEP4:将设计项目设置成ProjectSTEP5:选择目标器件 STEP11:硬件测试STEP9:引脚锁定并编译STEP8:仿真测 试和波形分析STEP7:建立仿真波形文件STEP6:启动编译STEP10:编程 下载/配置VHDL文本输入设计流程 5.4 VHDL文本输入设计方法初步文本输入设计方法初步为设计全加器新建一个文件夹作工作库文件夹名
38、取为My_prjct注意,不可用中文!5.4.1 编辑输入并保存编辑输入并保存VHDL源文件源文件新建一个设计文件使用文本输入方法设计,必须选择打开文本编辑器图图5-13 在文本编辑窗中输入在文本编辑窗中输入VHDL文件并存盘文件并存盘图图5-12 建立文本编辑器对话框建立文本编辑器对话框文本编辑窗用键盘输入设计文件:多路选择器存盘文件名必须取为:mux21a.vhd注意,要存在自己建立的文件夹中文件存盘后,关键词将改变颜色!否则文件名一定有错!5.4.2 将当前设计设定为工程将当前设计设定为工程图图5-14 设定当前文件为工程设定当前文件为工程首先点击这里然后选择此项,将当前的原理图设计文件
39、设置成工程最后注意此路径指向的改变注意,此路径指向当前的工程!首先选择这里器件系列选择窗,选择ACEX1K系列根据实验板上的目标器件型号选择,如选EP1K30注意,首先消去这里的勾,以便使所有速度级别的器件都能显示出来选择编译器编译窗5.4.3 选择选择VHDL文本编译版本号和排错文本编译版本号和排错图图5-15 设定设定VHDL编译版本号编译版本号选择此项选择VHDL1993项选择此项消去这里的勾编译出错!5.4.3 选择选择VHDL文本编译版本号和排错文本编译版本号和排错图图5-16 确定设计文件中的错误确定设计文件中的错误打开错误提示窗错误所在错误所在改正错误完成编译!完成编译!首先选择
40、此项,为仿真测试新建一个文件时序仿真时序仿真选择波形编辑器文件从从SNF文件中文件中输入设计文件输入设计文件的信号节点的信号节点点击点击“LIST”SNF文件中文件中的信号节点的信号节点用此键选择左窗用此键选择左窗中需要的信号中需要的信号进入右窗进入右窗最后点击最后点击“OK”消去这里的勾,消去这里的勾,以便方便设置以便方便设置输入电平输入电平在在Options菜单中消去网格对齐菜单中消去网格对齐Snap to Grid的选择的选择(消去对勾消去对勾)选择选择END TIME调整仿真时间调整仿真时间区域。区域。选择选择65微秒微秒比较合适比较合适用此键改变仿真用此键改变仿真区域坐标到合适区域坐
41、标到合适位置。位置。点击点击1,使拖黑,使拖黑的电平为高电平的电平为高电平先点击先点击b,将其将其点为黑色点为黑色然后先点击此处然后先点击此处将弹出时钟周期将弹出时钟周期设置窗设置窗设置输入信号设置输入信号b的周期为的周期为800ns设置输入信号设置输入信号a的周期为的周期为2us仿真波形文件仿真波形文件存盘!存盘!选择仿真器选择仿真器运行仿真器运行仿真器5.4.4 时序仿真时序仿真图图5-17 mux21a仿真波形仿真波形引脚锁定引脚锁定可选择键可选择键8作为多作为多路选择器的输入路选择器的输入“s”选择实验电路结构图选择实验电路结构图6可选择输出可选择输出“y”的信号从扬的信号从扬声器输出
42、声器输出信号信号a和和b输入输入两个不同频率两个不同频率的时钟信号的时钟信号键键8的引脚名的引脚名作为作为“s”信号信号键键8的引脚名的引脚名对应的引脚号对应的引脚号选择实验板上选择实验板上插有的目标器件插有的目标器件扬声器引脚号扬声器引脚号为:为:99信号信号b由由“clock0”输入输入时钟信号,时钟信号,引脚号为:引脚号为:126信号信号a由由“clock5”输入输入时钟信号,时钟信号,引脚号为:引脚号为:56注意,对于注意,对于GWAK30+板,板,时钟引脚必须查阅以下时钟引脚必须查阅以下 “时钟了解表时钟了解表1”引脚对应情况引脚对应情况实验板位置实验板位置 多路选择器信号多路选择器
43、信号 通用目标器件引脚名通用目标器件引脚名 目标器件目标器件EP1K30TC144引脚号引脚号 1、键、键8:s PIO13 272、扬声器、扬声器 y SPEAKER 993、时钟输入信号、时钟输入信号 b CLOCK0 1264、时钟输入信号、时钟输入信号 a CLOCK5 56选择引脚选择引脚锁定选项锁定选项引脚窗引脚窗此处输入此处输入信号名信号名此处输入此处输入引脚名引脚名按键按键“ADD”即可即可注意引脚属性注意引脚属性错误引脚名将错误引脚名将无正确属性!无正确属性!再编译一次,再编译一次,将引脚信息将引脚信息进去进去选择编程器,选择编程器,准备将设计准备将设计好的半加器好的半加器文
44、件下载到目文件下载到目器件中去器件中去编程窗编程窗在编程窗打开在编程窗打开的情况下选择的情况下选择下载方式设置下载方式设置选择此项下选择此项下载方式载方式下载(配置)下载(配置)成功!成功!5.4.5 硬件测试硬件测试选择电路选择电路模式为模式为“6”模式选择键模式选择键“s”为高为高电平电平注意时钟注意时钟频率选择频率选择CLOCK5:a频率选择频率选择1024HzCLOCK0:b频率选择频率选择256Hz实实 验验 实验实验5-1 简单组合电路的设计简单组合电路的设计(1)实实验验目目的的:熟熟悉悉Max+plus的的VHDL文文本本设设计计流流程程全全过过程程,学学习习简简单单组组合合电
45、电路路的的设设计计、多多层层次次电电路路设设计计、仿仿真真和和硬硬件测试。件测试。(2)实实 验验 内内 容容 1:首首 先先 按按 照照 5.4节节 给给 出出 的的 步步 骤骤,利利 用用MAX+plus完完 成成 2选选 1多多 路路 选选 择择 器器 的的 文文 本本 编编 辑辑 输输 入入(mux21a.vhd)和和仿仿真真测测试试等等步步骤骤,给给出出图图5-17所所示示的的仿仿真真波波形形。最最后后在在实实验验系系统统上上进进行行硬硬件件测测试试,实实际际验验证证本本项项设设计计的的功能。功能。实实 验验 实验实验5-1 简单组合电路的设计简单组合电路的设计(3)实实验验内内容容
46、2:将将5.4节节的的多多路路选选择择器器看看成成是是一一个个元元件件mux21a,利利用用元元件件例例化化语句描述图语句描述图5-20,并将此文件放在同一目录,并将此文件放在同一目录E:muxfile中。以下是参考程序:中。以下是参考程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUXK IS PORT(a1,a2,a3,s0,s1 :IN STD_LOGIC;outy :OUT STD_LOGIC);END ENTITY MUXK;ARCHITECTURE BHV OF MUXK IS COMPONENT MUX21A PORT(a,
47、b,s:IN STD_LOGIC;y:OUT STD_LOGIC);END COMPONENT;SIGNAL tmp :STD_LOGIC;BEGIN u1:MUX21A PORT MAP(a=a2,b=a3,s=s0,y=tmp);u2:MUX21A PORT MAP(a=a1,b=tmp,s=s1,y=outy);END ARCHITECTURE BHV;实实 验验 实验实验5-1 简单组合电路的设计简单组合电路的设计 按按照照5.4节节的的步步骤骤对对上上例例分分别别进进行行编编译译、综综合合、仿仿真真。并并对对其其仿仿真真波波形形(图图5-23)作出分析说明。作出分析说明。图图5-23
48、 仿真波形仿真波形实实 验验 实验实验5-1 简单组合电路的设计简单组合电路的设计 (4)实实验验内内容容3:引引脚脚锁锁定定以以及及硬硬件件下下载载测测试试。若若目目标标器器件件是是EPF10K10,建建议议选选实实验验电电路路模模式式5(附附图图1-7),用用键键1(PIO0,引引脚脚号号为为5)控控制制s0;用用键键2(PIO1,引引脚脚号号为为6)控控制制s1;a3、a2和和a1分分别别接接clock5(引引脚脚号号为为83)、clock0(引引脚脚号号为为2)和和clock2(引引脚脚号号为为43);输输出出信信号号outy仍仍接接扬扬声声器器spker(引引脚脚号号为为3)。通通过
49、过短短路路帽帽选选择择clock0接接256Hz信信号号,clock5接接1024Hz,clock2接接8Hz信信号号。引引脚脚锁锁定定窗窗如如图图5-24所所示示。最后进行编译、下载和硬件测试实验最后进行编译、下载和硬件测试实验。实实 验验 实验实验5-1 简单组合电路的设计简单组合电路的设计图图5-24 实验实验5-1引脚锁定引脚锁定实实 验验 实验实验5-1 简单组合电路的设计简单组合电路的设计(5)实实验验报报告告:根根据据以以上上的的实实验验内内容容写写出出实实验验报报告告,包包括括程程序序设设计计、软软件件编编译译、仿仿真真分分析析、硬硬件件测测试试和和详详细细实实验验过过程程;给
50、出程序分析报告、仿真波形图及其分析报告。给出程序分析报告、仿真波形图及其分析报告。(6)附附加加内内容容:根根据据本本实实验验以以上上提提出出的的各各项项实实验验内内容容和和实实验要求,设计验要求,设计1位全加器。位全加器。首首先先用用Max+plus完完成成本本章章第第3节节给给出出的的全全加加器器的的设设计计,包包括括仿仿真真和和硬硬件件测测试试。实实验验要要求求分分别别仿仿真真测测试试底底层层硬硬件件或或门门和和半半加加器器,最最后后完完成成顶顶层层文文件件全全加加器器的的设设计计和和测测试试,给给出出设设计计原程序,程序分析报告、仿真波形图及其分析报告。原程序,程序分析报告、仿真波形图