VHDL设计初步课件

上传人:新** 文档编号:592771451 上传时间:2024-09-22 格式:PPT 页数:36 大小:408KB
返回 下载 相关 举报
VHDL设计初步课件_第1页
第1页 / 共36页
VHDL设计初步课件_第2页
第2页 / 共36页
VHDL设计初步课件_第3页
第3页 / 共36页
VHDL设计初步课件_第4页
第4页 / 共36页
VHDL设计初步课件_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《VHDL设计初步课件》由会员分享,可在线阅读,更多相关《VHDL设计初步课件(36页珍藏版)》请在金锄头文库上搜索。

1、第第4章章 VHDL设计初步设计初步本章内容本章内容z4.1 多路选择器多路选择器VHDL描述(简单组合电描述(简单组合电路)路)z4.2 寄存器描述及其寄存器描述及其VHDL语言现象(简语言现象(简单时序电路)单时序电路)z4.3 1为二进制全加器的为二进制全加器的VHDL设计(实例)设计(实例)z4.4 VHDL文本输入设计方法(文本输入设计方法(工具使用,工具使用,通过上机操作掌握通过上机操作掌握)VHDL设计初步设计初步本章重点掌握内容本章重点掌握内容z1、实体及端口的定义。、实体及端口的定义。z2、结构体和信号的定义。、结构体和信号的定义。z3、基本逻辑操作符和信号赋值操作符。、基本

2、逻辑操作符和信号赋值操作符。z4、IF-THEN-ELSE(顺序)、(顺序)、WHEN-ELSE(并行)语句。(并行)语句。z5、进程语句。、进程语句。z6、信号的上升沿表示方法。、信号的上升沿表示方法。z7、元件例化方法。、元件例化方法。VHDL设计初步设计初步是什么是是什么是VHDL? Very high speed integrated Hardware Description Language (VHDL)y是是IEEE、工业标准硬件描述语言、工业标准硬件描述语言y用语言的方式而非图形等方式描述硬件电路用语言的方式而非图形等方式描述硬件电路x容易修改容易修改x容易保存容易保存y特别适合

3、于电路的设计特别适合于电路的设计VHDL设计初步设计初步VHDL的功能和标准z VHDL 描述描述y输入端口输入端口y输出端口输出端口y电路的行为和功能电路的行为和功能zVHDL有过两个标准:有过两个标准:yIEEE Std 1076-1987 (called VHDL 1987)yIEEE Std 1076-1993 (called VHDL 1993)VHDL设计初步设计初步【例4-1】ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ;END ENTITY mux21a ;ARCHITECTURE one O

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

5、RE 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-3】 . . . ARCHITECTURE one OF mux21a IS BEGIN y = (a AND (NOT s) OR (b AND s) ; END ARCHITECTURE one;VHDL设计初步设计初步4.1.1 2选选1多路选择器的多路选择器的VHDL描述描述【例【例4-4】 ENTITY mux21a IS PORT ( a, b, s:

6、IN BIT; y : OUT BIT );END 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 ;VHDL设计初步设计初步4.1.1 2选选1多路选择器的多路选择器的VHDL描述描述图图4-3 mux21a功能时序波形功能时序波形VHDL设计初步设计初步4.1.2 VHDL相关语句说明相关语句说明1. 1. 实体表达实体表达【例【例4-5】ENT

7、ITY e_name IS PORT ( p_name : port_m data_type; . p_namei : port_mi data_type );END ENTITY e_name;或:或:【例【例4-6】ENTITY e_name IS PORT ( p_name : port_m data_type; . p_namei : port_mi data_type );END e_name;VHDL设计初步设计初步4.1.2 VHDL相关语句说明相关语句说明2. 2. 实体名实体名3. 3. PORTPORT语句和端口信号名语句和端口信号名4. 4. 端口模式端口模式INOUTI

8、NOUTBUFFER5. 5. 数据类型数据类型BITBITVHDL设计初步设计初步4.1.2 VHDL相关语句说明相关语句说明6. 6. 结构体表达结构体表达【例【例4-7】ARCHITECTURE arch_name OF e_name IS (说明语句说明语句)BEGIN (功能描述语句功能描述语句)END ARCHITECTURE arch_name ;或:或:【例【例4-8】ARCHITECTURE arch_name OF e_name IS (说明语句说明语句)BEGIN (功能描述语句功能描述语句)END arch_name ;7. 7. 信号传输信号传输( (赋值赋值) )符

9、号和数据比较符号符号和数据比较符号VHDL设计初步设计初步4.1.2 VHDL相关语句说明相关语句说明8. 8. 逻辑操作符逻辑操作符ANDAND、OROR、NOTNOT9. 9. IF_THENIF_THEN条件语句条件语句10. 10. WHEN_ELSEWHEN_ELSE条件信号赋值语句条件信号赋值语句赋值目标赋值目标 = 表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋值条件 ELSE . 表达式表达式 ;11. 11. PROCESSPROCESS进程语句和顺序语句进程语句和顺序语句12. 12. 文件取名和存盘文件取名和存盘VHDL设计初步设计

10、初步4.1.3 VHDL设计的基本概念和语句小节设计的基本概念和语句小节数据类型信号赋值符条件比较符 延时实体结构体端口定义端口模式逻辑操作符IF条件语句并行条件语句进程语句顺序语句并行语句文件取名文件存盘VHDL设计初步设计初步4.2 寄存器描述及其寄存器描述及其VHDL语言现象语言现象4.2.1 D触发器的触发器的VHDL描述描述【例【例4-9】LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q : OUT STD_LOGIC )

11、; 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触发器触发器VHDL设计初步设计初步比较用比较用5种不同语句的种不同语句的D触发器触发器VHDL程序程序Entity test1 isp

12、ort (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 test

13、1;architecture body of 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

14、 = q1 ;end process;end body;Entity 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 body;VHDL设计初步设计初步4.2.2 D触发器触发器VHDL描述的语言现象说明描述的语言现象说明1. 1. 标准逻辑位数据类型标准逻辑位数据

15、类型STD_LOGICSTD_LOGICBIT数据类型定义: TYPE BIT IS(0,1);TYPE BIT IS(0,1);STD_LOGIC数据类型定义: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

16、; HH表示弱表示弱逻辑逻辑1 1; - -表示忽略。表示忽略。VHDL设计初步设计初步4.2.2 D触发器触发器VHDL描述的语言现象说明描述的语言现象说明2. 2. 设计库和标准程序包设计库和标准程序包3. 3. SIGNALSIGNAL信号定义和数据对象信号定义和数据对象【例【例4-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 ;

17、USE USE .ALL ; ALL ; VHDL设计初步设计初步4.2.2 D触发器触发器VHDL描述的语言现象说明描述的语言现象说明4. 4. 上升沿检测表式和信号属性函数上升沿检测表式和信号属性函数EVENTEVENT 关键词EVENT是信号属性,VHDL通过以下表式来测定某信号的跳变边沿: EVENTEVENTVHDL设计初步设计初步5. 5. 不完整条件语句与时序电路不完整条件语句与时序电路【例【例4-11】ENTITY COMP_BAD IS PORT( a1 : IN BIT; b1 : IN BIT; q1 : OUT BIT ); END ; ARCHITECTURE one

18、 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 图图4-6 例例4-12的电路图的电路图VHDL设计初步设计初步4.2.5 VHDL设计基本概念和语言现象小节设计基本概念和语言现象小节数据类型数据对象信号属性时钟检测VHDL库程序包时序电路异步时序VHDL设计初步设计初步4.3 1位二进制全加器的位二进制全加器的VHDL设计设计图图4-10半加器半加器h_a

19、dder电路图电路图图图4-11 全加器全加器f_adder电路图电路图VHDL设计初步设计初步4.3.1 半加器描述和半加器描述和CASE语句语句absoco0000011010101101表表5-1 半加器半加器h_adder逻辑功能真值表逻辑功能真值表1. 1. CASECASE语句语句CASE语句的一般表式是:语句的一般表式是:CASE ISWhen = ; . ; ;When = ; . ; ;.END CASE ;VHDL设计初步设计初步2. 2. 标准逻辑矢量数据类型标准逻辑矢量数据类型STD_LOGIC_VECTORSTD_LOGIC_VECTOR3. 3. 并置操作符并置操作

20、符 以下是一些并置操作示例:以下是一些并置操作示例: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条件句中可以使用并置符条件句中可以使用并置符 4.3.1 半加器描述和半加器描述和CASE语句语句在使用STD_LOGIC_VECTOR中,必须注明其数组宽度,即位宽,如: B : OUT STD_LOGI

21、C_VECTOR(7 DOWNTO 0) ; 或或 SIGNAL A :STD_LOGIC_VECTOR(1 TO 4)VHDL设计初步设计初步4.3.1 半加器描述和半加器描述和CASE语句语句【例【例4-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 OF or2a IS BEGIN c = a OR b ; END ARCHI

22、TECTURE fu1;【例【例4-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; VHDL设计初步设计初步【例【例4-22】LIBRARY IEEE; -半加器

23、描述半加器描述(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 PROCESS;END ARCHITECTURE fh1 ;

24、VHDL设计初步设计初步【例【例4-22】 . -半加器描述半加器描述(3) SIGNAL abc,cso : STD_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;VHDL设计初步设计初步4.3.2 全加器描述和例化语句全加器描

25、述和例化语句 元元件件例例化化语语句句由由两两部部分分组组成成,第第一一部部分分是是对对一一个个现现成成的的设设计计实实体体定定义义为为一一个个元元件件,语语句句的的功功能能是是对对待待调调用用的的元元件件作作出出调调用用声声明明,它它的的最最简简表达式如下所示:表达式如下所示: COMPONENT 元件名元件名 IS PORT (端口名表端口名表) ; END COMPONENT 文件名文件名 ; 元元件件例例化化语语句句的的第第二二部部分分则则是是此此元元件件与与当当前前设设计计实实体体(顶顶层层文文件件)中中元件间及端口的连接说明。语句的表达式如下:元件间及端口的连接说明。语句的表达式如

26、下: 例化名例化名 : 元件名元件名 PORT MAP( 端口名端口名 = 连接端口名连接端口名,.);VHDL设计初步设计初步4.5 一位十进制计数器设计一位十进制计数器设计zPort (rst,en,clk:in std_logic;cq:out std_logic_vectore(3 downto 0);cout:out std_logic);zIf rst=1 then cq=0000 ;z elsif clkevent and clk=1 thenz if en=1 then z if tmp9 then z tmp=tmp+1;z end if;z end ifzEnd if;zI

27、f tmp=9 then tmp=0000;cout=1;z else cout=0;zend if;zCq=tmp;VHDL设计初步设计初步4.5.3 含并置的移位寄存器的设计含并置的移位寄存器的设计zIF CLKEVENT AND CLK=1 THENz IF LOAD=1 REG8=DIN;z ELSE z REG8(6 DOWNTO 0)=REG(7 DOWNTO 1);z END IF;zQB=REG8(0);zEND IFVHDL设计初步设计初步STEP1:建立 工作库文件夹STEP2:输入设计项目原理图/VHDL文本代码STEP3:存盘,注意 原理图/文本取名STEP4:将设计项

28、目设置成ProjectSTEP5:选择目标器件 STEP11: 硬件测试STEP9:引脚锁定并编译STEP8:仿真测 试和波形分析STEP7:建立仿真波形文件STEP6:启动编译STEP10:编程 下载/配置VHDL文本输入设计流程文本输入设计流程 VHDL设计初步设计初步作业作业zP93z4-2 设计设计4选选1多路选择器多路选择器z4-4 设计时序电路设计时序电路VHDL设计初步设计初步实验内容实验内容z1、利用、利用CASE语句由真值表实现语句由真值表实现1位全加位全加器,再由器,再由1位全加器位全加器例化例化实现实现8位全加器。位全加器。z2、用、用VHDL语言实现语言实现7人表决器,多数通人表决器,多数通过绿灯亮,否则红灯亮。过绿灯亮,否则红灯亮。VHDL设计初步设计初步

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号