《VHDL入门》PPT课件.ppt
《《VHDL入门》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VHDL入门》PPT课件.ppt(57页珍藏版)》请在三一办公上搜索。
1、EDA技术与VHDL,第3章VHDL 入门,KX康芯科技,3.1 简单组合电路的VHDL描述,3.1.1 多路选择器的VHDL描述,图3-1 mux21a实体 图3-2 mux21a结构体,3.1 简单组合电路的VHDL描述,3.1.1 多路选择器的VHDL描述,【例3-1】ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y=a WHEN s=0 ELSE b;END ARCHITECTURE one;,3.1 简单组合电路的VH
2、DL描述,3.1.1 多路选择器的VHDL描述,【例3-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=a AND(NOT S);e=b AND s;y=d OR e;END ARCHITECTURE one;,3.1 简单组合电路的VHDL描述,3.1.1 多路选择器的VHDL描述,【例3-3】ENTITY mux21a IS PORT(a,b,s:IN BIT;y:OUT BIT);END
3、ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS(a,b,s)BEGIN IF s=0 THEN y=a;ELSE y=b;END IF;END PROCESS;END ARCHITECTURE one;,3.1 简单组合电路的VHDL描述,3.1.1 多路选择器的VHDL描述,图3-3 mux21a功能时序波形,3.1 简单组合电路的VHDL描述,1.实体表达,【例3-4】ENTITY e_name IS PORT(p_name:port_m data_type;.p_namei:port_mi data_type);END
4、ENTITY e_name;,3.1 简单组合电路的VHDL描述,2.实体名,3.端口语句和端口信号名,4.端口模式,“IN”、“OUT”、“INOUT”、“BUFFER”,5.数据类型,3.1 简单组合电路的VHDL描述,6.结构体表达,【例3-5】ARCHITECTURE arch_name OF e_name IS 说明语句BEGIN(功能描述语句)END ARCHITECTURE arch_name;,3.1 简单组合电路的VHDL描述,7.赋值符号和数据比较符号,IF a THEN.-注意,a的数据类型必须是boolean IF(s1=0)AND(s2=1)OR(cb+1)THEN.
5、,8.逻辑操作符,BIT、BOOLEAN、STD_LOGIC,3.1 简单组合电路的VHDL描述,9.条件语句,10.WHEN_ELSE条件信号赋值语句,赋值目标=表达式 WHEN 赋值条件 ELSE表达式 WHEN 赋值条件 ELSE.表达式;,z=a WHEN p1=1 ELSE b WHEN p2=1 ELSE c;,3.1 简单组合电路的VHDL描述,11.进程语句和顺序语句,12.文件取名和存盘,IF_THEN_ELSE_END IF;,“.vhd”,adder_f.vhd,【例3-6】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY D
6、FF1 IS PORT(CLK:IN STD_LOGIC;D:IN STD_LOGIC;Q:OUT STD_LOGIC);END;ARCHITECTURE 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;,3.2 简单时序电路的VHDL描述,3.2.1 D触发器,图3-4 D触发器,3.2 简单时序电路
7、的VHDL描述,3.2.2 D触发器VHDL描述的语言现象说明,1.标准逻辑位数据类型STD_LOGIC,BIT数据类型定义:TYPE BIT IS(0,1);-只有两种取值STD_LOGIC数据类型定义:TYPE STD_LOGIC IS(U,X,0,1,Z,W,L,H,-);,3.2 简单时序电路的VHDL描述,3.2.2 D触发器VHDL描述的语言现象说明,2.设计库和标准程序包,LIBRARY WORK;LIBRARY STD;USE STD.STANDARD.ALL;,LIBRARY;USE.ALL;,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;
8、,3.2 简单时序电路的VHDL描述,3.2.2 D触发器VHDL描述的语言现象说明,3.信号定义和数据对象,EVENT,4.上升沿检测表式和信号属性函数EVENT,5.不完整条件语句与时序电路,3.2 简单时序电路的VHDL描述,3.2.2 D触发器VHDL描述的语言现象说明,【例3-7】ENTITY COMP_BAD IS PORT(a1,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=0;-未
9、提及当a1=b1时,q1作何操作END IF;END PROCESS;END;,3.2 简单时序电路的VHDL描述,3.2.2 D触发器VHDL描述的语言现象说明,图3-5 例3-7的电路图(Synplify综合),3.2 简单时序电路的VHDL描述,3.2.2 D触发器VHDL描述的语言现象说明,图3-6 例3-8的电路图(Synplify综合),【例3-8】.IF a1 b1 THEN q1=1;ELSE q1=0;END IF;.,3.2 简单时序电路的VHDL描述,3.2.3 实现时序电路的不同表述,【例3-9】.PROCESS(CLK)BEGINIF CLKEVENT AND(CLK
10、=1)AND(CLKLAST_VALUE=0)THEN Q=D;-确保CLK的变化是一次上升沿的跳变 END IF;END PROCESS;【例3-10】.PROCESS(CLK)BEGINIF CLK=1 AND CLKLAST_VALUE=0-同例3-9 THEN Q=D;END IF;END PROCESS;,3.2 简单时序电路的VHDL描述,3.2.3 实现时序电路的不同表述,【例3-11】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF3 IS PORT(CLK,D:IN STD_LOGIC;Q:OUT STD_LOGIC);E
11、ND;ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1:STD_LOGIC;BEGIN PROCESS(CLK)BEGIN IF rising_edge(CLK)-必须打开STD_LOGIC_1164程序包 THEN Q1=D;END IF;END PROCESS;Q=Q1;-在此,赋值语句可以放在进程外,作为并行赋值语句 END;,3.2 简单时序电路的VHDL描述,3.2.3 实现时序电路的不同表述,【例3-12】.PROCESS BEGIN wait until CLK=1;-利用wait语句 Q=D;END PROCESS;,3.2 简单时序电路的VHDL描述
12、,3.2.3 实现时序电路的不同表述,【例3-13】.PROCESS(CLK)BEGIN IF CLK=1 THEN Q=D;-利用进程的启动特性产生对CLK的边沿检测 END IF;END PROCESS,图3-7 例3-13的时序波形,3.2 简单时序电路的VHDL描述,3.2.3 实现时序电路的不同表述,【例3-14】.PROCESS(CLK,D)BEGIN IF CLK=1-电平触发型寄存器 THEN Q=D;END IF;END PROCESS;,图3-8 例3-14的时序波形,3.2 简单时序电路的VHDL描述,3.2.4 异步时序电路设计,【例3-15】.ARCHITECTURE
13、 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;END PROCESS;QQ=Q2;.,3.2 简单时序电路的VHDL描述,3.2.4 异步时序电路设计,图3-9 例3-15综合后的电路(Synplify综合),3.3 含有层次结构的VHDL描述,3.3.1 半
14、加器描述和CASE语句,图3-10 半加器h_adder电路图及其真值表,3.3 含有层次结构的VHDL描述,3.3.1 半加器描述和CASE语句,图3-11 全加器f_adder电路图及其实体模块,3.3 含有层次结构的VHDL描述,3.3.1 半加器描述和CASE语句,【例3-16】LIBRARY IEEE;-半加器描述(1):布尔方程描述方法USE 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
15、OF h_adder is BEGIN so=NOT(a XOR(NOT b);co=a AND b;END ARCHITECTURE fh1;,3.3 含有层次结构的VHDL描述,3.3.1 半加器描述和CASE语句,【例3-17】LIBRARY IEEE;-半加器描述(2):真值表描述方法USE 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
16、_LOGIC_VECTOR(1 DOWNTO 0);-定义标准逻辑位矢量数据类型BEGIN abc so so so so NULL;END CASE;END PROCESS;END ARCHITECTURE fh1;,3.3 含有层次结构的VHDL描述,3.3.1 半加器描述和CASE语句,【例3-18】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 OF or2a IS
17、 BEGIN c=a OR b;END ARCHITECTURE one;,3.3 含有层次结构的VHDL描述,3.3.1 半加器描述和CASE语句,【例3-19】LIBRARY IEEE;-1位二进制全加器顶层设计描述 USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder IS PORT(ain,bin,cin:IN STD_LOGIC;cout,sum:OUT STD_LOGIC);END ENTITY f_adder;ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder-调用半加器声明语句 PORT(a,b:IN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL入门 VHDL 入门 PPT 课件
链接地址:https://www.31ppt.com/p-5454314.html