FPGA 第七章:VHDL描述方式


FPGA 第七章:VHDL描述方式

7.1 行为描述

行为描述表示输出与输入之间转换的行为,无须包含任何结构信息。

行为描述主要使用顺序描述语句,以算法的形式描述数据的变化和传送。

行为描述方式通常由一个或多个进程构成,每一个进程又包含了一系列顺序语句

7.2 寄存器传输(数据流)RTL描述

RTL描述显式地表示了设计单元的行为,隐含了该设计单元的结构。

主要是指非结构化的并行语句描述

举例:

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 dataflow OF full_adder IS
BEGIN
  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;

7.3 结构化描述

结构描述是侧重描述设计单元之间的硬件结构

主要使用元件例化语句或生成语句来完成这种描述。

举例:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY full_adder IS
  GENERIC(tpd:TIME:=10ns);
  PORT(x,y,c_in: IN STD_LOGIC;
        Sum, c_out: OUT STD_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 
        (behavioral); 
   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 (in1=>c, in2=>a, out1=>c_out);
END structural;

文章作者: Mat Jenin
文章链接: http://matjenin.xyz
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Mat Jenin !
  目录