VHDL的描述风格课件.ppt

上传人:小飞机 文档编号:3726770 上传时间:2023-03-17 格式:PPT 页数:18 大小:127KB
返回 下载 相关 举报
VHDL的描述风格课件.ppt_第1页
第1页 / 共18页
VHDL的描述风格课件.ppt_第2页
第2页 / 共18页
VHDL的描述风格课件.ppt_第3页
第3页 / 共18页
VHDL的描述风格课件.ppt_第4页
第4页 / 共18页
VHDL的描述风格课件.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《VHDL的描述风格课件.ppt》由会员分享,可在线阅读,更多相关《VHDL的描述风格课件.ppt(18页珍藏版)》请在三一办公上搜索。

1、第三章 VHDL的描述风格,3.1 行为描述方式 3.2 数据流描述方式(RTL描述方式)3.3 结构化描述方式3.4 混合描述风格,VHDL语言是通过结构体具体描述整个设计实体的逻辑功能。通常结构体有四种不同的描述方式:行为描述方式(behavior)、数据流描述方式(dataflow)或寄存器RTL描述方式、结构化描述方式(structural)以及混合描述方式。VHDL通过这四种不同的描述方式从不同的侧面描述结构体的功能。前三种是最基本的描述方式,他们组合起来就成为混合描述方式。下面结合一个全加器来说明这四种描述风格,全加器的端口示意图如图所示,其输入输出关系如表所示。,全加器的输入输出

2、关系,输入 输出c_in x y c_out sum 0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1,全加器框图,3.1 行为描述方式,行为描述输入与输出间转换的行为,不需包含任何结构信息,它对设计实体按算法的路径来描述。行为描述在EDA工程中通常被称为高层次描述,设计工程师只需要注意正确的实体行为、准确的函数模型和精确的输出结果就可以了,无需关注实体的电路组织和门级实现。,例:基于全加器真值表采用行为描述方式设计的全加器(1位二进制数全加)LIBRARY IEEE;USE IEEE.STD_LO

3、GIC_1164.ALL;ENTITY full_adder IS GENERIC(tpd:TIME:=10 ns);PORT(x,y,c_in:IN STD_LOGIC;Sum,c_out:OUT STD_LOGIC);END full_adder;ARCHITECTURE behav OF full_adder ISBEGIN PROCESS(x,y,c_in)VARIABLE n:INTEGER;CONSTANT sum_vector:STD_LOGIC_VECTOR(0 TO 3):=“0101”;CONSTANT carry_vector:STD_LOGIC_VECTOR(0 TO

4、3):=“0011”;,BEGIN n:=0;IF x=1 THEN n:=n+1;END IF;IF y=1 THEN n:=n+1;END IF;IF c_in=1 THEN n:=n+1;END IF;-(0 TO 3)sum=sum_vector(n)AFTER 2*tpd;-sum_vector初值为“0101”c_out=carry_vector(n)AFTER 3*tpd;-carry_vector初值为“0011”END PROCESS;-(0 TO 3)END behav;,输入 输出c_in x y c_out sum 0 0 0 0 00 0 1 0 10 1 0 0 1

5、0 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1,对照真值表解释程序,3.2 数据流描述方式 数据流描述方式表示行为,也隐含表示结构,它描述了数据流的运动路线、运动方向和运动结果。,对于全加器,用布尔方程描述其逻辑功能如下:s=x XOR y sum=s XOR c_in c_out=(x AND y)OR(s AND c_in)下面是基于上述布尔方程的数据流风格的描述:,例:采用数据流描述方式的全加器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY full_adder IS GENERIC(tpd:TI

6、ME:=10 ns);PORT(x,y,c_in:IN STD_LOGIC;Sum,c_out:OUT STD_LOGIC);END full_adder;ARCHITECTURE dataflow OF full_adder ISBEGIN s=x XOR y AFTER tpd;sum=s XOR c_in AFTER tpd;c_out=(x AND y)OR(s AND c_in)AFTER 2*tpd;END dataflow;,3.23 结构描述方式,结构化描述方式就是在多层次的设计中,高层次的设计可以调用低层次的设计模块,或直接用门电路设计单元来构成一个复杂逻辑电路的方法。利用结

7、构化描述方法将已有的设计成果方便地用于新的设计中,能大大提高设计效率。在结构化描述中,建模的焦点是端口及其互连关系。,结构化描述的建模步骤如下:(1)元件说明(2)元件例化(3)元件配置元件说明用于描述局部接口;元件例化是要相对于其他元件来放置该元件;元件配置用于指定元件所用的设计实体。,对于上图给出的全加器端口结构,可以认为它是由两个半加器和一个或门组成的。基于上图所示的结构,可以写出全加器的结构化描述设计程序如下。,例:全加器的结构化描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY half_adder IS GENERIC(tpd:TIM

8、E:=10 ns);PORT(in1,in2:IN STD_LOGIC;sum,carry:OUT STD_LOGIC);END half_adder;ARCHITECTURE behavioral OF half_adder ISBEGINPROSESS(in1,in2),BEGIN sum=in1 XOR in2 AFTER tpd;carry=in1 AND in2 AFTER tpd;END PROCESS;END behavioral;-半加器设计完毕LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or_gate IS GENERIC(

9、tpd:TIME:=10 ns);PORT(in1,in2:IN STD_LOGIC;out1:OUT STD_LOGIC);END or_gate;,ARCHITECTURE structural OF or_gate ISBEGIN out1=in1 OR in2 AFTER tpd;END structural;-或门设计完毕 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY full_adder IS GENERIC(tpd:TIME:=10 ns);PORT(x,y,c_in:IN STD_LOGIC;Sum,c_out:OUT STD_

10、LOGIC);END full_adder;,ARCHITECTURE structural OF full_adder IS COMPONENT half_adder PORT(in1,in2:IN STD_LOGIC;sum,carry:OUT STD_LOGIC);END COMPONENT;COMPONENT or_gate PORT(in1,in2:IN STD_LOGIC;out1:OUT STD_LOGIC);END COMPONENT;SIGNAL a,b,c:STD_LOGIC;FOR u1,u2:half_adder USE ENTITY WORK.half_adder(b

11、ehavioral);FOR u3:or_gate USE ENTITY WORK.or_gate(structural);,BEGIN u1:half_adder PORT MAP(x,y,b,a);u2:half_adder PORT MAP(c_in,b,sum,c);u3:or_gate PORT MAP(c,a,c_out);END structural;,由上例可见,对于一个复杂的电子系统,可以将其分解为若干个子系统,每个子系统再分解成模块,形成多层次设计。这样,可以使更多的设计者同时进行合作。在多层次设计中,每个层次都可以作为一个元件,再构成一个模块或系统,可以先分别仿真每个元件

12、,然后再整体调试。所以说结构化描述不仅是一种设计方法,而且是一种设计思想,是大型电子系统高层次设计的重要手段。,3.4 混合描述风格,在实际设计工作中,可以采用上述三种描述方式的任意组合,这就是混合描述。同样还是图所给出端口结构的全加器模型,其混合描述方式如下。,例:全加器的混合描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor_gate IS GENERIC(tpd:TIME:=10 ns);PORT(in1,in2:IN STD_LOGIC;out1:OUT STD_LOGIC);END xor_gate;,ARCHITECTURE

13、behavioral OF xor_gate ISBEGIN out1=in1 XOR in2 AFTER tpd;END behavioral;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY full_adder IS GENERIC(tpd:TIME:=10 ns);PORT(x,y,c_in:IN STD_LOGIC;Sum,c_out:OUT STD_LOGIC);END full_adder;,ARCHITECTURE mix OF full_adder IS COMPONENT xor_gate PORT(in1,in2:IN STD_LOGIC;out1:OUT STD_LOGIC);END COMPONENT;SIGNAL s:STD_LOGIC;FOR ALL:xor_gate USE ENTITY WORK.xor_gate(behavioral);BEGIN u1:xor_gate PORT MAP(x,y,s);u2:xor_gate PORT MAP(s,c_in,sum);c_out=(x AND y)OR(s AND c_in)AFTER 2*tpd;END mix;,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号