高血压专题网,内容丰富有趣,生活中的好帮手!
高血压专题网 > 【FPGA学习笔记】VHDL语言(五)语言风格描述:行为描述 数据流描述 结构化描述

【FPGA学习笔记】VHDL语言(五)语言风格描述:行为描述 数据流描述 结构化描述

时间:2019-02-13 15:55:00

相关推荐

【FPGA学习笔记】VHDL语言(五)语言风格描述:行为描述 数据流描述 结构化描述

一、行为描述

只描述电路的行为和功能没有直接指明涉及的硬件结构。通常是指含有进程的非结构化描述。

在程序中不存在任何与硬件选择相关的语句,不存在任何有关硬件连线的语句。仅仅做了功能描述

eg:

--模10的加法计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY cnt ISPORT(reset,vlk IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END cnt;ARCHITECTURE behav OF cnt ISSIGNAL q0 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS (clk,reset,q0)BEGINIF reset = '0' THENq0 <= "0000";ELSIF (clk'EVENT AND clk = '1') THENIF q0 = "1001" THEN q0 <= "0000";ELSEq0 <= q0 + 1;END IF;END IF;q = q0;END PROCESS;END behav;

二、数据流描述(RTL描述)

真正可以进行逻辑综合的描述方式。

--二选一多路选择器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALLENTITY mux2_1 ISport (d0 ,d1,sel : IN STD_LOGIC ;q : out STD_LOGIC);END mux2_1;ARCHITECTURE rtl OF mux2_1 ISSIGNAL tmp1,tmp2,tmp3 : STD_LOGIC;BEGINtmp1 <= d0 AND sel;tmp2 <= d1 AND (NOT sel);tmp3 <= tmp1 OR tmp2;q <= tmp3;END rtl;

三、结构化描述

高层次设计模块调用低层次设计模块。用门电路设计单元构成复杂的逻辑电路的方法。

步骤:

a.元件说明: 说明元件的调用,描述元件的接口。

b.元件例化:指定元件的安放位置,确定与其他元件的连接关系。

c.元件配置:指定元件使用的设计实体,如一个实体有多个结构体,配置来决定使用哪个结构体。

1、元件说明(component)

component 语句指定了结构体中所调用的模块哪一个现成 的逻辑模块

--元件说明语句COMPONENT component_name GENERIC --类属性说明(parameter_name : STRING := default_value;parameter_name : INTEGER := default_value);PORT--端口说明(input_name : IN STD_LOGIC;bidir_name : IN STD_LOGIC;output_name :OUT STD_LOGIC);END COMPONENT;

GENERIC用于参数的代入和赋值;

PORT用于说明元件的输入、输出、端口信号。

位置:ARCHITECTURE \ PACKAGE \ BLOCK

2、元件例化

将元件的信号映射成高层次电路中的信号。

instance_name : component_name --instance_name:例化名 component_name:元件名PORT MAP(component_port => connect_name;...);

--结构化描述例子ENTITY mux2_1 ISport (d0,d1,sel : IN BIT;q : out BIT );END mux2_1;ARCHITECTURE struct OF mux2_1 ISCOMPONENT AND2 --元件AND2说明PORT (a,b : IN BITc : OUT BIT);END COMPONENT;COMPONENT OR2 --元件OR2说明PORT(a,b : IN BIT c : OUT BIT);END COMPONENT;COMPONENT INV --元件INV说明PORT(a : IN BIT;b : OUT BIT);END COMPONENT;SIGNAL aa,ab,nsel : BIT;BEGIN u1 : INV PORT MAP(a =>sel,b => nsel); --元件例化u2 : AND2 PORT MAP(a =>nsel,b => d1,c => ab); --元件例化u3 : AND2 PORT MAP(a => d0,b => d1, c => aa); --元件例化u4 : OR2 PORT MAP(a => aa,b => ab, c => q); --元件例化END struct;

对一个设计进行结构化描述,就是描述它由那些子元件构成,以及子元件之间的互联关系。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。