应用VHDL设计数字系统.ppt
《应用VHDL设计数字系统.ppt》由会员分享,可在线阅读,更多相关《应用VHDL设计数字系统.ppt(76页珍藏版)》请在三一办公上搜索。
1、,EDA技术及其应用,第4章,应用VHDL设计数字系统,4.1 多路选择器的VHDL描述,多路选择器的VHDL描述,图4-1 mux21a实体,图4-2 mux21a结构体,4.1 多路选择器的VHDL描述,多路选择器的VHDL描述【例4-1】ENTITY mux21a ISPORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a ISBEGINy=a WHEN s=0 ELSE b;END ARCHITECTURE one;,4.1 多路选择器的VHDL描述,多路选择器的VHDL描述,【例
2、4-2】ENTITY mux21a ISPORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a ISSIGNAL d,e:BIT;BEGINd=a AND(NOT S);e=b AND s;y=d OR e;END ARCHITECTURE one;,4.1 多路选择器的VHDL描述,多路选择器的VHDL描述【例4-3】ENTITY mux21a ISPORT(a,b,s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux
3、21a ISBEGINPROCESS(a,b,s)BEGINIF s=0 THENy=a;ELSEy=b;END IF;END PROCESS;END ARCHITECTURE one;,4.1 多路选择器的VHDL描述,多路选择器的VHDL描述图4-3 mux21a功能时序波形,4.1 多路选择器的VHDL描述,语句结构和语法说明,1.实体表达【例4-4】ENTITY e_name ISPORT(p_name:port_m data_type;.p_namei:port_mi data_type);END ENTITY e_name;,4.1 多路选择器的VHDL描述,语句结构和语法说明,2
4、.实体名3.端口语句和端口信号名4.端口模式5.数据类型,4.1 多路选择器的VHDL描述,6.结构体表达,【例4-5】,ARCHITECTURE arch_name OF e_name IS,说明语句,BEGIN,(功能描述语句),END ARCHITECTURE arch_name;,4.1 多路选择器的VHDL描述,7.赋值符号和数据比较符号,IF a THEN.-注意,a的数据类型必须是booleanIF(s1=0)AND(s2=1)OR(cb+1)THEN.,8.逻辑操作符,9.条件语句,4.1 多路选择器的VHDL描述,10.WHEN_ELSE条件信号赋值语句,赋值目标=表达式 W
5、HEN 赋值条件 ELSE表达式 WHEN 赋值条件 ELSE,.,表达式;,z=a WHEN p1=1 ELSE,b WHEN p2=1 ELSEc;,4.1 多路选择器的VHDL描述,11.进程语句和顺序语句,12.文件取名和存盘,4.2 寄存器描述的VHDL程序,D触发器的描述,图4-4 D触发器,4.2 寄存器描述的VHDL程序,【例4-6】,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 IS,PORT(CLK:IN STD_LOGIC;,D:IN STD_LOGIC;,Q:OUT STD_LOGIC);,END;,ARCH
6、ITECTURE bhv OF DFF1 IS,SIGNAL Q1:STD_LOGIC;-类似于在芯片内部定义一个数据的暂存节点BEGIN,PROCESS(CLK,Q1),BEGIN,IF CLKEVENT AND CLK=1,THEN Q1=D;,END IF;,END PROCESS;,Q=Q1;-将内部的暂存数据向端口输出(双横线-是注释符号),END bhv;,4.2 寄存器描述的VHDL程序,VHDL描述的语言现象说明,1.标准逻辑位数据类型STD_LOGICBIT数据类型定义:TYPE BIT IS(0,1);-只有两种取值STD_LOGIC数据类型定义:TYPE STD_LOGI
7、C IS(U,X,0,1,Z,W,L,H,-);,4.2 寄存器描述的VHDL程序,VHDL描述的语言现象说明,2.设计库和标准程序包LIBRARY WORK;LIBRARY STD;USE STD.STANDARD.ALL;LIBRARY;USE.ALL;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;,4.2 寄存器描述的VHDL程序,VHDL描述的语言现象说明,3.信号定义和数据对象4.上升沿检测表式和信号属性函数EVENT5.不完整条件语句与时序电路,4.2 寄存器描述的VHDL程序,VHDL描述的语言现象说明,5.不完整条件语句与时序电路【例4-7】
8、ENTITY COMP_BAD ISPORT(a1,b1:IN BIT;q1:OUT BIT);END;ARCHITECTURE one OF COMP_BAD ISBEGINPROCESS(a1,b1)BEGINIF a1 b1 THEN q1=1;ELSIF a1 b1 THEN q1=0;-未提及当a1=b1时,q1作何操作END IF;END PROCESS;END;,4.2 寄存器描述的VHDL程序,VHDL描述的语言现象说明,5.不完整条件语句与时序电路图4-5 例4-7的电路图(Synplify综合),4.2 寄存器描述的VHDL程序,VHDL描述的语言现象说明,5.不完整条件语
9、句与时序电路图4-6 例4-8的电路图(Synplify综合),.,.,4.2 寄存器描述的VHDL程序,VHDL描述的语言现象说明,5.不完整条件语句与时序电路【例4-8】IF a1 b1 THEN q1=1;ELSE q1=0;END IF;,4.2 寄存器描述的VHDL程序,实现时序电路的不同表述,【例4-9】.PROCESS(CLK)BEGINIF CLKEVENT AND(CLK=1)AND(CLKLAST_VALUE=0)THEN Q=D;-确保CLK的变化是一次上升沿的跳变END IF;END PROCESS;,4.2 寄存器描述的VHDL程序,实现时序电路的不同表述,【例4-1
10、0】.PROCESS(CLK)BEGINIF CLK=1 AND CLKLAST_VALUE=0THEN Q=D;END IF;END PROCESS;,4.2 寄存器描述的VHDL程序,【例4-11】,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF3 IS,PORT(CLK,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)
11、-必须打开STD_LOGIC_1164程序包THEN Q1=D;END IF;,END PROCESS;,Q=Q1;-在此,赋值语句可以放在进程外,作为并行赋值语句,END;,;,4.2 寄存器描述的VHDL程序,实现时序电路的不同表述,【例4-12】,.PROCESSBEGINwait until CLK=1Q=D;END PROCESS;,-利用wait语句,4.2 寄存器描述的VHDL程序,实现时序电路的不同表述,【例4-13】,.PROCESS(CLK)BEGINIF CLK=1THEN Q=D;END IF;END PROCESS;,-利用进程的启动特性产生对CLK的边沿检测,图4-
12、7 例4-13的时序波形,4.2 寄存器描述的VHDL程序,实现时序电路的不同表述,【例4-14】.PROCESS(CLK,D)BEGINIF CLK=1-电平触发型寄存器THEN Q=D;END IF;END PROCESS图4-8 例4-14的时序波形,4.2 寄存器描述的VHDL程序,异步时序电路设计,【例4-15】.ARCHITECTURE bhv OF MULTI_DFF ISSIGNAL Q1,Q2:STD_LOGIC;BEGINPRO1:PROCESS(CLK)BEGINIF CLKEVENT AND CLK=1THEN Q1=NOT(Q2 OR A);END IF;END PR
13、OCESS;PRO2:PROCESS(Q1)BEGINIF Q1EVENT AND Q1=1THEN Q2=D;END IF;END PROCESS;QQ=Q2;.,4.2 寄存器描述的VHDL程序,异步时序电路设计图4-9 例4-15综合后的电路(Synplify综合),4.3 1位全加器的VHDL描述,半加器描述,【例4-16】LIBRARY IEEE;-半加器描述(1):布尔方程描述方法USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder ISPORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTITY h_a
14、dder;ARCHITECTURE fh1 OF h_adder isBEGINso=NOT(a XOR(NOT b);co=a AND b;END ARCHITECTURE fh1;,4.3 1位全加器的VHDL描述,半加器描述,a,and2,co,a00,b01,so01,co00,b,not,xnor2,so,11,01,10,01,图4-10 半加器h_adder电路图及其真值表,a,4.3 1位全加器的VHDL描述,半加器描述,ain,u1h_adderA co,d,h_adderA co f b,or2a,c,cout,ainbin,f_adder,cout,bin,B,so,e,
15、B,so,u3,sum,cin,sum,cin,u2图4-11 全加器f_adder电路图及其实体模块,USE IEEE.STD_LOGIC_1164.ALL;,END ARCHITECTURE fh1;,4.3h_adder IS,co,so OUT半加器描述,【例4-17】,LIBRARY IEEE;-半加器描述(2):真值表描述方法,ENTITY 1位全加器的VHDL描述,PORT(a,b:IN STD_LOGIC;,4.3.1:STD_LOGIC);,END ENTITY h_adder;,ARCHITECTURE fh1 OF h_adder is,SIGNAL abc:STD_LO
16、GIC_VECTOR(1 DOWNTO 0);-定义标准逻辑位矢量,数据类型,BEGIN,abc=a-a相并b,即a与b并置操作,PROCESS(abc),BEGIN,CASE abc IS-类似于真值表的CASE语句,WHEN 00=so so so so NULL;,END CASE;,END PROCESS;,图4-11 全加器f_adder电路图及其实体模块,4.3 1位全加器的VHDL描述,半加器描述,【例4-18】LIBRARY IEEE;-或门逻辑描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a ISPORT(a,b:IN STD_LOGIC;c
17、:OUT STD_LOGIC);END ENTITY or2a;ARCHITECTURE one OF or2a ISBEGINc=a OR b;END ARCHITECTURE one;,4.3.1 半加器描述,4.3f_adder IS,【例4-19】,LIBRARY IEEE;-1位二进制全加器顶层设计描述USE IEEE.STD_LOGIC_1164.ALL;,ENTITY 1位全加器的VHDL描述,PORT(ain,bin,cin:IN STD_LOGIC;,cout,sum:OUT STD_LOGIC);,END ENTITY f_adder;,ARCHITECTURE fd1 O
18、F f_adder IS,COMPONENT h_adder-调用半加器声明语句,PORT(a,b:IN STD_LOGIC;,co,so:OUT STD_LOGIC);,END COMPONENT;COMPONENT or2a,PORT(a,b:IN STD_LOGIC;,c:OUT STD_LOGIC);END COMPONENT;,SIGNAL d,e,f:STD_LOGIC;-定义3个信号作为内部的连接线。,BEGIN,u1:h_adder PORT MAP(a=ain,b=bin,co=d,so=e);-例化,语句,u2:h_adder PORT MAP(a=e,b=cin,co=f
19、,so=sum);u3:or2a PORT MAP(a=d,b=f,c=cout);,END ARCHITECTURE fd1;,4.3 1位全加器的VHDL描述,CASE语句,1.CASE语句CASE ISWhen=;.;;When=;.;;.WHEN OTHERS=;END CASE;WHEN OTHERS=;,4.3 1位全加器的VHDL描述,CASE语句,2.标准逻辑矢量数据类型B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);或SIGNAL A:STD_LOGIC_VECTOR(1 TO 4)B=01100010;-B(7)为 0B(4 DOWNTO 1)=110
20、1;-B(4)为 1B(7 DOWNTO 4)=A;-B(6)等于 A(2)SIGNAL C:BIT_VECTOR(3 DOWNTO 0);,4.3 1位全加器的VHDL描述,CASE语句,3.并置操作符-元素与元素并置,并置后的数组长度为4.IF a&d=101011 THEN.-在IF条件句中可以使用并置符,4.3 1位全加器的VHDL描述,4.3.3 全加器描述和例化语句,COMPONENT 元件名 ISPORT(端口名表);,END COMPONENT 文件名;,COMPONENT h_adder,PORT(c,d:IN STD_LOGIC;,e,f:OUT STD_LOGIC);,例
21、化名:元件名 PORT MAP(端口名=连接端口名,.);,4.4 计数器设计,【例4-20】,ENTITY CNT4 IS,PORT(CLK:IN BIT;,Q:BUFFER INTEGER RANGE 15 DOWNTO 0);,END;,ARCHITECTURE bhv OF CNT4 IS,BEGIN,PROCESS(CLK),BEGIN,IF CLKEVENT AND CLK=1 THEN,Q=Q+1;,END IF;,END PROCESS;,END bhv;,4.4 计数器设计,4位二进制加法计数器设计整数类型,103510E316#D9#8#720#2#11010010#,十进
22、制整数十进制整数十进制整数十进制整数,等于十进制整数1000十六进制整数,等于十六进制整数D9H八进制整数,等于八进制整数720O二进制整数,等于二进制整数11010010B,4.4 计数器设计,计数器设计的其他表述方法,【例4-21】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4 ISPORT(CLK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE bhv OF CNT4 ISSIGNAL
23、Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENQ1=Q1+1;END IF;END PROCESS;Q=Q1;END bhv;,1,4.4 计数器设计,计数器设计的其他表述方法,CLK,3:0,组合电路加1器,4位锁存器,输出反馈,锁存信号,+,1:4,1:4,D3:0 Q3:0,3:0 3:0,Q3:0,un2_q11:4,Q3:0,图4-12 4位加法计数器RTL电路(Synplify综合),4.4 计数器设计,计数器设计的其他表述方法图4-13 4位加法计数器工作时序,4.5
24、 一般加法计数器设计,【例4-22】,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS,PORT(CLK,RST,EN:IN STD_LOGIC;,CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);,COUT:OUT STD_LOGIC);END CNT10;,ARCHITECTURE behav OF CNT10 ISBEGIN,PROCESS(CLK,RST,EN),VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWN
25、TO 0);,BEGIN,IF RST=1 THEN CQI:=(OTHERS=0);-计数器异步复位ELSIF CLKEVENT AND CLK=1 THEN-检测时钟上升沿IF EN=1 THEN-检测是否允许计数(同步使能)IF CQI 9 THEN CQI:=CQI+1;-允许计数,检测是否小于9,ELSE CQI:=(OTHERS=0);-大于9,计数值清零,END IF;END IF;END IF;,IF CQI=9 THEN COUT=1;-计数大于9,输出进位信号,ELSE COUT=0;,END IF;,CQ=CQI;-将计数值向端口输出,END PROCESS;,END b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 VHDL 设计 数字 系统

链接地址:https://www.31ppt.com/p-5723328.html