收藏 分销(赏)

EDA第四章-VHDL设计初步.pptx

上传人:可**** 文档编号:963533 上传时间:2024-04-09 格式:PPTX 页数:35 大小:372.95KB
下载 相关 举报
EDA第四章-VHDL设计初步.pptx_第1页
第1页 / 共35页
EDA第四章-VHDL设计初步.pptx_第2页
第2页 / 共35页
EDA第四章-VHDL设计初步.pptx_第3页
第3页 / 共35页
EDA第四章-VHDL设计初步.pptx_第4页
第4页 / 共35页
EDA第四章-VHDL设计初步.pptx_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、可编程逻辑器件特点 用户可反复编程,用户可反复编程,在外围电路不动的情况下,更改软件可在外围电路不动的情况下,更改软件可实现不同的功能。实现不同的功能。电路设计人员在很短的时间内就可完成电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,最后电路的输入、编译、优化、仿真,最后芯片的制作芯片的制作STEP1:建立 工作库文件夹STEP2:输入设计项目原理图/VHDL文本代码STEP3:存盘,注意 原理图/文本取名STEP4:将设计项目设置成ProjectSTEP5:选择目标器件 STEP11:硬件测试STEP9:引脚锁定并编译STEP8:仿真测 试和波形分析STEP7:建立仿真波形文

2、件STEP6:启动编译STEP10:编程 下载/配置VHDL文本输入设计流程【例4-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;实体结构体4.1 多路选择器多路选择器VHDL描述描述图图4-1 mux21a实体实体图图4-2 mux21a结构体结构体4.1.1 2选选1多路选择器的多路选择器的VHDL描述描述4.1.1 2选选1多路选择器

3、的多路选择器的VHDL描述描述【例例4-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;4.1.1 2选选1多路选择器的多路选择器的VHDL描述描述【例【例4-3】ENTITY mux21a IS PORT(a,b,s:IN BIT;y:OUT BIT );END ENTITY mux2

4、1a;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;4.1.2 VHDL相关语句说明相关语句说明1.1.实体表达实体表达【例【例4-4】ENTITY e_name IS PORT(p_name:port_m data_type;.p_namei:port_mi data_type);END ENTITY e_name;或:或:ENTITY e_name IS PORT(p_name:port_m da

5、ta_type;.p_namei:port_mi data_type);END e_name;4.1.2 VHDL相关语句说明相关语句说明2.2.实体名实体名3.3.PORTPORT语句和端口信号名语句和端口信号名4.4.端口模式端口模式INOUTINOUTBUFFER回读5.数据类型数据类型BIT,1,0STD_logic,1,0,h,l,U,X,W,Z,-BOOLEAN,ture,false Integer 0 4.1.2 VHDL相关语句说明相关语句说明6.6.结构体表达结构体表达【例【例4-5】ARCHITECTURE arch_name OF e_name IS (说明语句说明语句)

6、BEGIN (功能描述语句功能描述语句)END ARCHITECTURE arch_name;或:或:ARCHITECTURE arch_name OF e_name IS (说明语句说明语句)BEGIN (功能描述语句功能描述语句)END arch_name;7.7.信号传输信号传输(赋值赋值)符号和数据比较符号符号和数据比较符号4.1.2 VHDL相关语句说明相关语句说明8.8.逻辑操作符逻辑操作符ANDAND、OROR、NOTNOT9.9.IF_THENIF_THEN条件语句条件语句10.10.WHEN_ELSEWHEN_ELSE条件信号赋值语句条件信号赋值语句赋值目标赋值目标=表达式表

7、达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋值条件 ELSE .表达式表达式;11.11.PROCESSPROCESS进程语句和顺序语句进程语句和顺序语句12.12.文件取名和存盘文件取名和存盘4.1.3 VHDL设计的基本概念和语句小节设计的基本概念和语句小节数据类型信号赋值符条件比较符 延时实体结构体端口定义端口模式逻辑操作符IF条件语句并行条件语句进程语句顺序语句并行语句文件取名文件存盘4.2 寄存器描述及其寄存器描述及其VHDL语言现象语言现象4.2.1 D触发器的触发器的VHDL描述描述【例4-6】LIBRARY IEEE;USE IEEE.STD_

8、LOGIC_1164.ALL;ENTITY DFF1 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)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=D;END IF;Q=Q1;-将内部的暂存数据向端口输出 END PROCESS;END bhv;D触发器触发器比较用5种不同语句的D触发器VHDL程序Entity test1

9、isport(clk,d:in bit;q:out bit);end test1;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

10、 test1 isbeginprocess(clk,d)begin if rising_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

11、:in bit;d:in bit;q:out bit);end test1;architecture body of test1 issignal q1:bit;beginprocess(clk)begin if(clk=1)then q1=d;end if;q=q1;end process;end body;D触发器VHDL程序1 例4-10Entity test1 isport(clk,d:in bit;q:out bit);end test1;architecture body of test1 issignal q1:bit;beginprocess(clk)begin if clk=

12、1 AND clklast_value=0 then q1=d;end if;q=q1;end process;end test1_bodyD触发器VHDL程序2 例4-11LIBRARY 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 rising_edge(clk)then q=d;end if;end process;end test1_body;D触

13、发器VHDL程序3Entity test1 isport(clk:in bit;d:in bit;q:out bit);end test1;architecture body of test1 issignal q1:bit;beginprocess(clk)begin if(clk=1)then q1=d;end if;q=q1;end process;end bodyD触发器VHDL程序4(电平型触发)Entity test1 isport(clk:in bit;d:in bit;q:out bit);end test1;architecture body of test1 issigna

14、l q1:bit;beginprocess(clk,d)begin if(clk=1)then q1=d;end if;q y y y y null;END CASE;END PROCESS;END ARCHITECTURE fh1;4.3 1位二进制全加器的位二进制全加器的VHDL描述描述图图4-11半加器半加器h_adder电路图电路图图图4-10 全加器全加器f_adder电路图电路图半加器描述、或门描述半加器描述、或门描述【例4-16】LIBRARY IEEE;-半加器描述(1)USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT(a,b

15、:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder is BEGIN so=NOT(a XOR(NOT b);co=a AND b;END ARCHITECTURE fh1;【例4-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 BEG

16、IN c=a OR b;END ARCHITECTURE one;【例4-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_LOGIC_VECTOR(1 DOWNTO 0);BEGIN abc so=0;co so=1;co so=1;co so=0;co NULL;END CASE;END

17、 PROCESS;END ARCHITECTURE fh1;半加器描述半加器描述CASE语句语句absoco0000011010101101表表4-1 半加器半加器h_adder逻辑功能真值表逻辑功能真值表1.1.CASECASE语句语句CASE语句的一般表式是:语句的一般表式是:CASE IS When =;.;;When =;.;;.WHEN OTHERS=;END CASE;2.2.标准逻辑矢量数据类型标准逻辑矢量数据类型STD_LOGIC_VECTORSTD_LOGIC_VECTOR3.3.并置操作符并置操作符 以下是一些并置操作示例:以下是一些并置操作示例:SIGNAL a:STD_

18、LOGIC_VECTOR(3 DOWNTO 0);SIGNAL d:STD_LOGIC_VECTOR(1 DOWNTO 0);.a ain,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;4.3.3 全加器描述和例化语句全加器描述和例化语句 元元件件例例化化语语句句由由两两部部分分组组成成,第第一一部部分分是是对对一一个个现现成成的的设设计计实实体体定定义义为为一一个个元元件件,语语句句的的功功能能是是对对待待调调用

19、用的的元元件件作作出出调调用用声声明明,它它的的最最简简表达式如下所示:表达式如下所示:COMPONENT 元件名元件名 IS PORT (端口名表端口名表);END COMPONENT 文件名文件名;元元件件例例化化语语句句的的第第二二部部分分则则是是此此元元件件与与当当前前设设计计实实体体(顶顶层层文文件件)中中元件间及端口的连接说明。语句的表达式如下:元件间及端口的连接说明。语句的表达式如下:例化名例化名:元件名元件名 PORT MAP(端口名端口名=连接端口名连接端口名,.);4.4 4位二进制加法计数器设计位二进制加法计数器设计AB01010101取整数数据类型,为什么?整数取值范围

20、端口信号模式取BUFFER,为什么?注意整数和位的不同表达方式!或者是BIT类型另一种表达方式运算符加载注意,信号注意,信号端口模式和端口模式和数据类型的数据类型的改变!改变!注意,引注意,引进内部信进内部信号矢量!号矢量!4位锁存器位锁存器组合电路加组合电路加1器器锁存信号锁存信号输出反馈输出反馈4.5 一般加法计数器设计一般加法计数器设计4.5.1 相关语法相关语法1.1.变量变量2.2.省略赋值操作符(省略赋值操作符(OTHERS=XOTHERS=X)为为了了简简化化表表达达才才使使用用短短语语“(OTHERS=X)OTHERS=X)”,这这是是一一个个省省略略赋赋值值操操作作符符,它它

21、可可以以在在较较多多位位的的位位矢矢量量赋赋值值中中作作省省略略化化的的赋赋值值,如以下语句:如以下语句:SIGNAL d1,d2 :STD_LOGIC_VECTOR(4 DOWNTO 0);VARIABLE a1:STD_LOGIC_VECTOR(15 DOWNTO 0);.d1 0);a1:=(OTHERS=0);d21,4=1,others=0);则则d2为为 10010,d1为为00000,a1为为0000000000000000例例4-22 带有复位和时钟使能的带有复位和时钟使能的10进制计数器进制计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL

22、;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 DOWNTO 0);BEGIN IF RST=1 THEN CQI:=(OTHERS=0);-计数器复位计数器复位 ELSIF CLKE

23、VENT AND CLK=1 THEN -检测时钟上升沿检测时钟上升沿 IF EN=1 THEN -检测是否允许计数检测是否允许计数 IF CQI 0);-大于大于9,计数值清零,计数值清零 END IF;END IF;END IF;IF CQI=1001 THEN COUT=1;-计数大于计数大于9,输出进位信号,输出进位信号 ELSE COUT=0;END IF;CQ=CQI;-将计数值向端口输出将计数值向端口输出 END PROCESS;END behav;图图4-14 例例4-22的的RTL电路电路图图4-15 例例4-22的工作时序的工作时序4.5.3 带有并行置位的移位寄存器带有并

24、行置位的移位寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHFRT IS -8位右移寄存器位右移寄存器 PORT(CLK,LOAD:IN STD_LOGIC;DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);QB:OUT STD_LOGIC );END SHFRT;ARCHITECTURE behav OF SHFRT IS BEGIN PROCESS(CLK,LOAD)VARIABLE REG8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN IF CLKEVENT AND CLK=1 TH

25、EN IF LOAD=1 THEN -装载新数据装载新数据 REG8:=DIN;ELSE REG8(6 DOWNTO 0):=REG8(7 DOWNTO 1);END IF;END IF;QB=REG8(0);END PROCESS;-输出最低位输出最低位END behav;【例4-23】4.5.3 带有并行置位的移位寄存器带有并行置位的移位寄存器图图4-16 例例4-22的工作时序的工作时序(1 1)在第)在第一个时钟到来时,一个时钟到来时,LOADLOAD恰为高电平恰为高电平(2 2)第二个时钟,以及以后的时钟信号都是移位时钟)第二个时钟,以及以后的时钟信号都是移位时钟(3 3)第二个时钟后,)第二个时钟后,QBQB输出了右移出的第输出了右移出的第2 2个位个位1 1

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服