




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章,VHDL设计初步,本章内容,4.1 多路选择器VHDL描述(简单组合电路) 4.2 寄存器描述及其VHDL语言现象(简单时序电路) 4.3 1为二进制全加器的VHDL设计(实例) 4.4 VHDL文本输入设计方法(工具使用,通过上机操作掌握),本章重点掌握内容,1、实体及端口的定义。 2、结构体和信号的定义。 3、基本逻辑操作符和信号赋值操作符。 4、IF-THEN-ELSE(顺序)、WHEN-ELSE(并行)语句。 5、进程语句。 6、信号的上升沿表示方法。 7、元件例化方法。,是什么是VHDL?,Very high speed integrated Hardware Description Language (VHDL) 是IEEE、工业标准硬件描述语言 用语言的方式而非图形等方式描述硬件电路 容易修改 容易保存 特别适合于电路的设计,VHDL的功能和标准,VHDL 描述 输入端口 输出端口 电路的行为和功能 VHDL有过两个标准: IEEE Std 1076-1987 (called VHDL 1987) IEEE Std 1076-1993 (called VHDL 1993),【例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-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; BEGIN d = 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;,4.1.1 2选1多路选择器的VHDL描述,【例4-4】 ENTITY mux21a IS PORT ( a, b, s: 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 ;,4.1.1 2选1多路选择器的VHDL描述,图4-3 mux21a功能时序波形,4.1.2 VHDL相关语句说明,1. 实体表达,【例4-5】 ENTITY 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;,4.1.2 VHDL相关语句说明,2. 实体名,3. PORT语句和端口信号名,4. 端口模式,IN,OUT,INOUT,BUFFER,5. 数据类型BIT,4.1.2 VHDL相关语句说明,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. 信号传输(赋值)符号和数据比较符号,4.1.2 VHDL相关语句说明,8. 逻辑操作符AND、OR、NOT,9. IF_THEN条件语句,10. WHEN_ELSE条件信号赋值语句,赋值目标 = 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE . 表达式 ;,11. PROCESS进程语句和顺序语句,12. 文件取名和存盘,4.1.3 VHDL设计的基本概念和语句小节,数据类型,信号赋值符,条件比较符, 延时,实体,结构体,端口定义,端口模式,逻辑操作符,IF条件语句,并行条件语句,进程语句,顺序语句,并行语句,文件取名,文件存盘,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 ); 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 is port (clk, d : in bit; q : out bit); end test1; architecture body of test1 is signal q1 : bit ; begin process (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 is port (clk, d : in bit; q : out bit); end test1; architecture body of test1 is begin process (clk,d) begin if rising_edge(clk) then q = d; end if; end process; end test1_body;,They are all the same,DFF,Entity test1 is port (clk : in bit; d : in bit; q : out bit); end test1; architecture body of test1 is signal q1 : bit ; begin process (clk,d) begin if (clk = 1) then q1 = d; end if; q = q1 ; end process; end body;,Entity test1 is port (clk : in bit; d : in bit; q : out bit); end test1; architecture body of test1 is signal q1 : bit ; begin process (clk) begin if (clk = 1) then q1 = d; end if; q = q1 ; end process; end body;,4.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,-);,STD_LOGIC所定义的9种数据的含义是: U表示未初始化的; X表示强未知的; 0表示强逻辑0; 1表示强逻辑1; Z表示高阻态; W 表示弱未知的; L表示弱逻辑0; H表示弱逻辑1; -表示忽略。,4.2.2 D触发器VHDL描述的语言现象说明,2. 设计库和标准程序包,3. SIGNAL信号定义和数据对象,【例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 ; USE ALL ;,4.2.2 D触发器VHDL描述的语言现象说明,4. 上升沿检测表式和信号属性函数EVENT,关键词EVENT是信号属性,VHDL通过以下表式来测定某信号的跳变边沿: EVENT,5. 不完整条件语句与时序电路,【例4-11】 ENTITY COMP_BAD IS PORT( a1 : IN BIT; 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 ;- 未提及当a1=b1时,q1作何操作 END IF; END PROCESS ; END ;,4.2.2 D触发器VHDL描述的语言现象说明,5. 不完整条件语句与时序电路,图4-5 例4-11的电路图,5. 不完整条件语句与时序电路,【例4-12】 ENTITY COMP_GOOD IS PORT(a1 : IN BIT; b1 : IN BIT; q1 : OUT BIT ); END ; ARCHITECTURE one OF COMP_GOOD IS BEGIN PROCESS (a1,b1) BEGIN IF a1 b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; END PROCESS ; END,图4-6 例4-12的电路图,4.2.5 VHDL设计基本概念和语言现象小节,数据类型,数据对象,信号属性,时钟检测,VHDL库,程序包,时序电路,异步时序,4.3 1位二进制全加器的VHDL设计,图4-10半加器h_adder电路图,图4-11 全加器f_adder电路图,4.3.1 半加器描述和CASE语句,a b so co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1,表5-1 半加器h_adder逻辑功能真值表,1. CASE语句,CASE语句的一般表式是:,CASE IS When = ; . ; ; When = ; . ; ; . END CASE ;,2. 标准逻辑矢量数据类型STD_LOGIC_VECTOR,3. 并置操作符 ,以下是一些并置操作示例:,SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ; SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ; . a = 10d(1)1 ; - 元素与元素并置,并置后的数组长度为4 . IF a d = “101011“ THEN . - 在IF条件句中可以使用并置符,4.3.1 半加器描述和CASE语句,在使用STD_LOGIC_VECTOR中,必须注明其数组宽度,即位宽,如: B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; 或 SIGNAL A :STD_LOGIC_VECTOR(1 TO 4),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 ARCHITECTURE 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;,【例4-22】 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 so so so NULL ; END CASE; END PROCESS; END ARCHITECTURE fh1 ;,【例4-22】 . -半加器描述(3) SIGNAL abc,cso : STD_LOGIC_VECTOR(1 DOWNTO 0 ); BEGIN abc cso cso cso cso=“10“ ; END CASE; END PROCESS; END ARCHITECTURE fh1;,【例4-23】 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 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; 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,so=sum); u3 : or2a PORT MAP(a=d, b=f, c=cout); END ARCHITECTURE fd1;,4.3.2 全加器描述和例化语句,元件例化语句由两部分组成,第一部分是对一个现成的设计实体定义为一个元件,语句的功能是对待调用的元件作出调用声明,它的最简表达式如下所示: COMPONENT 元件名 IS PORT (端口名表) ; END COMPONENT 文件名 ;,元件例化语句的第二部分则是此元件与当前设计实体(顶层文件)中元件间及端口的连接说明。语句的表达
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中学教师资格考试《综合素质》核心考点特训题库(含答案)-教育创新与发展篇
- 2025年注册会计师考试《会计》金融工具会计处理经例题解析试题试卷
- 2025年小学教师综合素质职业道德论述题库及答案
- 2025年教师资格证考试《综合素质》心理辅导案例分析试题集及答案
- 2025年专升本艺术概论考试模拟卷:艺术科技融合案例分析试题
- 2025年小学语文毕业升学考试全真模拟卷(课外阅读与知识积累拓展试题)
- 2025年统计学期末考试题库:统计调查实施中的教育质量评估数据分析试题集
- 2025福建厦门市集美区后溪中心幼儿园招聘考试备考试题及答案解析
- 2025浙江嘉兴市属事业单位招聘高层次人才40人笔试备考试题及答案解析
- 2025北京门头沟区卫生健康系统下半年事业单位招聘卫生专业技术人员101人备考试题及答案解析
- 郑州市第四中学新初一分班(摸底)语文模拟试题(5套带答案)
- 2-第二章-各向异性材料的应力-应变关系
- 医院防爆反恐应急预案
- 云南省安全员C证考试题库及答案
- 死亡待遇申请表
- 集中供热管网系统一次网的调节方法
- 无线充电技术在汽车上的应用
- 马工程《刑法学(下册)》教学课件 第17章 危害国家安全罪
- 11科室临床路径、单病种管理目录
- 《廉洁从业》企业文化培训课件
- 综合性文稿写作名师优质课赛课一等奖市公开课获奖课件
评论
0/150
提交评论