EDA第四章 VHDL设计初步

上传人:仙*** 文档编号:67325147 上传时间:2022-03-30 格式:PPT 页数:36 大小:421.02KB
收藏 版权申诉 举报 下载
EDA第四章 VHDL设计初步_第1页
第1页 / 共36页
EDA第四章 VHDL设计初步_第2页
第2页 / 共36页
EDA第四章 VHDL设计初步_第3页
第3页 / 共36页
资源描述:

《EDA第四章 VHDL设计初步》由会员分享,可在线阅读,更多相关《EDA第四章 VHDL设计初步(36页珍藏版)》请在装配图网上搜索。

1、可编程逻辑器件特点 1.集成度高,可靠性好,体积小,容量大集成度高,可靠性好,体积小,容量大 2.处理速度快,保密性好。处理速度快,保密性好。 3.该类器件的逻辑功能由用户设计该类器件的逻辑功能由用户设计 4.开发方便,可扩展能力强,升级容易开发方便,可扩展能力强,升级容易 5.可在现场编程,实时检验可在现场编程,实时检验 6.开发周期短,效率高,设计制造成本低开发周期短,效率高,设计制造成本低 7.已成为最流行的设计芯片之一已成为最流行的设计芯片之一 8.按国际规范开发工具设计,先进,通用按国际规范开发工具设计,先进,通用可编程逻辑器件特点 用户可反复编程,用户可反复编程, 在外围电路不动的

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

3、输入设计流程 【例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多路选择器的多路选择器的VHDL描述

4、描述【例例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 : OU

5、T 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 ;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_

6、name;或:或:ENTITY e_name IS PORT ( p_name : port_m data_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相关语句说明相关语句

7、说明6. 6. 结构体表达结构体表达【例【例4-5】ARCHITECTURE arch_name OF e_name IS (说明语句说明语句)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、NOT

8、NOT9. 9. IF_THENIF_THEN条件语句条件语句10. 10. WHEN_ELSEWHEN_ELSE条件信号赋值语句条件信号赋值语句赋值目标赋值目标 = 表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋值条件 ELSE . 表达式表达式 ;11. 11. PROCESSPROCESS进程语句和顺序语句进程语句和顺序语句12. 12. 文件取名和存盘文件取名和存盘4.1.3 VHDL设计的基本概念和语句小节设计的基本概念和语句小节数据类型信号赋值符条件比较符 延时实体结构体端口定义端口模式逻辑操作符IF条件语句并行条件语句进程语句顺序语句并行语

9、句文件取名文件存盘4.2 寄存器描述及其寄存器描述及其VHDL语言现象语言现象4.2.1 D触发器的触发器的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 ; ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC ; -类似于在芯片内部定义一个数据的暂存节点 BEGIN PROCESS (CLK) BEGIN I

10、F 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 test1;architecture body of test1 issignal q1 : bit ;beginprocess (clk)begin if clk=1 AND clklast_value=0 then q1 = d; end if; q

11、 = 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 rising_edge(clk) then q = d; end if;end process;end test1_body;Entity test1 isport (clk : in bit; d : in b

12、it; 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;architecture body of test1 issignal q1 : bit ;beginprocess (clk)begi

13、n 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=1 AND clklast_value=0 then q1 = d; end if; q = q1 ;end process;end test1_bodyD触发

14、器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触发器VHDL程序3Entity test1 isport (clk : in bit; d : in bit; q : o

15、ut 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 issignal q1 : bit ;beginprocess (cl

16、k,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 : IN STD

17、_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; ARCHITECTU

18、RE one OF or2a IS BEGIN 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

19、so=1; co so=1; co so=0; co NULL ; END CASE; END 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_VECTORST

20、D_LOGIC_VECTOR3. 3. 并置操作符并置操作符 以下是一些并置操作示例:以下是一些并置操作示例:SIGNAL a : STD_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 全加器描述和例化语句全加器描述和例化语句 元

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

22、名例化名 : 元件名元件名 PORT MAP( 端口名端口名 = 连接端口名连接端口名,.);4.4 4位二进制加法计数器设计位二进制加法计数器设计AB01010101取整数数据类型,为什么?整数取值范围端口信号模式取BUFFER,为什么?注意整数和位的不同表达方式!或者是BIT类型另一种表达方式运算符加载注意,信号注意,信号端口模式和端口模式和数据类型的数据类型的改变!改变!注意,引注意,引进内部信进内部信号矢量!号矢量!4位锁存器位锁存器组合电路加组合电路加1器器锁存信号锁存信号输出反馈输出反馈4.5 一般加法计数器设计一般加法计数器设计4.5.1 相关语法相关语法1. 1. 变量变量2.

23、 2. 省略赋值操省略赋值操作符(作符(OTHERS=XOTHERS=X) 为了简化表达才使用短语为了简化表达才使用短语“(“(OTHERS=X)”OTHERS=X)”,这是一个省略赋这是一个省略赋值操作符,它可以在较多位的位矢量赋值中作省略化的赋值,值操作符,它可以在较多位的位矢量赋值中作省略化的赋值,如以下语句:如以下语句: 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

24、); 则则d2为为 10010,d1为为00000,a1为为0000000000000000例例4-22 带有复位和时钟使能的带有复位和时钟使能的10进制计数器进制计数器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 O

25、F CNT10 ISBEGIN PROCESS(CLK, RST, EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST = 1 THEN CQI := (OTHERS =0) ; -计数器复位计数器复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿检测时钟上升沿 IF EN = 1 THEN -检测是否允许计数检测是否允许计数 IF CQI 0);-大于大于9,计数值清零,计数值清零 END IF; END IF; END IF; IF CQI = 1001 THEN COUT = 1; -

26、计数大于计数大于9,输出进位信号,输出进位信号 ELSE COUT = 0; END IF; CQ = CQI; -将计数值向端口输出将计数值向端口输出 END PROCESS;END behav;图图4-14 例例4-22的的RTL电路电路图图4-15 例例4-22的工作时序的工作时序4.5.3 带有并行置位的移位寄存器带有并行置位的移位寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHFRT IS - 8位右移寄存器位右移寄存器 PORT ( CLK,LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VE

27、CTOR(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 THEN 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个位个位11

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!