原创 VHDL学习三

2007-3-1 10:08 3194 2 2 分类: FPGA/CPLD

CASE语句,属于顺序语句,因此必须放在process中使用,用法如下:

case expression is


when choice => sequential_statements      --quential_statements 顺序语句构成,语句间用;隔开。when choice => sequential_statements. . .


when others=>sequential_statements)   --如果有没有被列举的情况,用此语句统一处理。


end case;


注:


1.choice 必须在expression的取值范围内;


2.when条件句中,必须覆盖expression中的所有情况,如果choice中没有覆盖expression中的所有情况,则要用others关键词,涵盖剩下的所有情况再作处理;


3.expression的每个情况只能出现一次,必须且只能选中一个情况。



std_logic_vector         标准逻辑矢量数据类型, 为一维数组,所以要求注明其宽度,用法如下:

例如:pout : out  std_logic_vector(7downto 0) ;  --定义了一个宽度为8位的标准逻辑矢量,每一位分别为pout(7),pout(6),pout(5)... ...pout(1),pout(0).


或者signal: std_logic_vector(1 to 4 )        --4位


其中的每一位都为std_logic类型,用于表达多通道端口或节点,或者总线BUS。类似的数据类型还有bit_vector.



并置操作符,表示将操作数或数组合并起来形成新的数组,用法如下:

abc<=a&b 相当于 abc(1)<=a;abc(0)<=b.    a,b可代表操作数或者数组。



component         元件例化语句,用于对现有的实体定义为元件为准备调用作出声明,并配合port map()(端口映射语句)以达到连接底层元件形成更高层次电路结构,用法如下:

Simplified Syntax:


architecture architecture_name of entity_name is


component component_name [ is ]


    generic (generic_list);    port (port_list);end component component_name;


component component_name2 [ is ]


    generic (generic_list);    port (port_list);end component component_name2;


...


begin



port map()   端口映射语句,用于说明元件与当前设计实体中元件间及接口间的连接说明,用法如下:

port map( [被例化成元件的实体中的端口名=>]当前实体中指定的端口名,...  );  --"=>"为连接符号。


注:


当前的设计实体相当于一个高一层次的电路系统,而当前设计的实体中指定的接口相当于整个电路系统上的插座,而被例化的实体形成的元件相当于要插在这些插座上的芯片。

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /2 下一条