第6章 VHDL程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章:VHDL程序设计
§6.1 VHDL描述风格
·描述风格:VHDL的构造体用于描述整个设计实体的逻辑功能。对于相同的电路功能行为,可以用不同的描述方式来表达;对于相同的逻辑行为,可以用不同的语句来描述。
·类型:行为描述;
寄存器传递(数据流)描述;
结构描述。
1.行为描述方式
·含义:是对系统数学模型的描述。
·特点:①只表示输入与输出间转换的行为,而不包含任何结构信息;
②主要使用函数、过程和进程语句,以算法形式描述数据的变换和传送;
③比寄存器传递和结构描述具有更高的抽象性;
④行为描述是VHDL编程的核心,可以说,没有行为描述就没有VHDL。
⑤通常不能直接进行逻辑综合,需要转化成RTL描述或结构描述。
·用途:主要用于系统数学模型的仿真或系统工作原理的仿真。
[例6-1]用行为描述方式描述“二选一”电路功能。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY mux2 IS i1
PROT( i0, i1, sel : IN STD_LOGIC;
q: OUT STD_LOGIC ); sel
END mux2;
ARCHITECTURE behav OF mux2 IS
BEGIN
CASE sel IS
WHEN 0 =>q<=i0 AFTER 10ns;
WHEN 1 =>q<=i1 AFTER 10ns;
WHEN OTHERS=>q<=‘X‘ AFTER 10ns;
END CASE
END behav;
2.寄存器传递描述(RTL)方式
·含义:是一种明确规定寄存器描述的方法。
·分类:①采用寄存器之间的功能描述(类似行为描述);
②采用寄存器硬件直接描述(一一对应)。
·特点:①RTL功能描述编程效率高、难度低,但可用的VHDL语句受限;
②RTL硬件描述编程难度大、要求高,但可用的VHDL语句多。[例6-2] 用RTL硬件方式描述“二选一”电路功能。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY mux2 IS
PROT( i0, i1, sel : IN STD_LOGIC;
q: OUT STD_LOGIC );
END mux2;
ARCHITECTURE rtl OF mux2 IS
SIGNAL temp1, temp2, temp3, : STD_LOGIC;
BEGIN
Temp1<=i0 AND sel;
Temp2<=i1 AND (NOT sel);
Temp3<=temp1 OR temp2;
q<=temp3;
END rtl;
3.结构描述方式
·含义:在分层设计中,通过高层次的设计模块调用低层次的设计模块来构成一个复杂的逻辑电路的描述方法。
·特点:①结构清晰,与硬件层层对应,如:系统→板→元件;
②设计效率高,可方便地将已有设计成果用到新的设计中。
[例6-3]用结构描述方式描述“二选一”电路功能。
U3
d0
d1
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY mux2 IS
PROT(d0, d1, sel : IN BIT;
q: OUT BIT );
END mux2;
ARCHITECTURE struct OF mux2 IS
COMPONENT and2
PROT(a, b : IN BIT;
c: OUT BIT );
END COMPONET;
COMPONENT or2
PROT(a, b : IN BIT;
c: OUT BIT );
END COMPONET;
COMPONENT inv
PROT(a : IN BIT;
c: OUT BIT );
END COMPONET;
SIGNAL aa, bb, nsel: BIT;
BEGIN
U1: inv PORT MAP(sel, nsel);
U2: and2 PORT MAP(d1, nsel, bb);
U3: and2 PORT MAP(d0, sel, aa);
U4: or2 PORT MAP(aa, bb, q);
END struct;
说明:①COMPONENT语句用来说明在该电路中所使用的已生成的模块and2,…;
②PORT MAP( ) 语句将已生成模块的端口与所设计的各模块U1,U2…的端口连接起来。
§6.2 组合逻辑电路设计
1.基本门电路
[例6-4] 用VHDL程序描述二输入“异或”门电路。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY xor2 IS
PORT (a, b: IN STD_LOGIC;
y: OUT STD_LOGIC);
END xor2;
ARCHITECTURE xor2_1 OF xor2 IS
BEGIN
y<=a XOR b;
END xor2_1;