1 / 5

顺序行为:执行的顺序是一个接在另一个之后严格执行。

VHDL 的进程行为. 顺序行为:执行的顺序是一个接在另一个之后严格执行。. 顺序行为的语句存在于 VHDL 程序中的 进程行为 之中。. 进程行为之间是并行行为语句. 进程行为语句的一般形式如下 :. < 进程标号 > : PROCESS < 敏感信号表 > < 进程说明区 > BEGIN < 语句部分 > WAIT ON < 敏感信号表 > ;

carlow
Download Presentation

顺序行为:执行的顺序是一个接在另一个之后严格执行。

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VHDL的进程行为 顺序行为:执行的顺序是一个接在另一个之后严格执行。 顺序行为的语句存在于VHDL程序中的进程行为之中。 进程行为之间是并行行为语句 进程行为语句的一般形式如下: < 进程标号> :PROCESS < 敏感信号表> < 进程说明区> BEGIN < 语句部分> WAIT ON < 敏感信号表> ; WAIT UNTIL < 条件表达式> ; WAIT FOR < 时间表达式> ; END PROCESS;

  2. VHDL的进程行为 进程行为的说明区定义该进程所需要的局部数据环境、它 包括子程序说明、属性说明和变量说明等 变量说明的一般形式为 VARIABLE < 定义变量表> :< 类型说明:= 初始值> ; 下面进程说明区中说明了变量count,进程也可对变量赋值。 PROCESS VARIABLE count:INTEGER:= 0; BEGIN count:= count+1; WAIT FOR 1000 ns; END PROCESS;

  3. 整个实体模块中的每个进程行为语句,可以在任何时候被整个实体模块中的每个进程行为语句,可以在任何时候被 激活,所有被激活的进程是并行执行的 下面举一个三八通用译码器程序的例子,说明进程语句 如何工作。 LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY decoder ISPORT(sel : IN UNSIGNED(2 DOWNTO 0); dout : OUT UNSIGNED(7 DOWNTO 0)); END decoder; ARCHITECTURE decoder_arc OF decoder IS SIGNAL sel1 :INTEGER; BEGIN PROCESS(sel) BEGIN

  4. sel1 <= CONV_INTEGER(sel); CASE sel1 IS WHEN 0 => dout <= (‘0’,’0’,’0’,’0’,’0’,’0’,’0’,’1’) AFTER 5 ns; WHEN 1 => dout <= (‘0’,’0’,’0’,’0’,’0’,’0’,’1’,’0’) AFTER 5 ns; WHEN 2 => dout <= (‘0’,’0’,’0’,’0’,’0’,’1’,’0’,’0’) AFTER 5 ns; WHEN 3 => dout <= (‘0’,’0’,’0’,’0’,’1’,’0’,’0’,’0’) AFTER 5 ns; WHEN 4 => dout <= (‘0’,’0’,’0’,’1’,’0’,’0’,’0’,’0’) AFTER 5 ns; WHEN 5 => dout <= (‘0’,’0’,’1’,’0’,’0’,’0’,’0’,’0’) AFTER 5 ns; WHEN 6 => dout <= (‘0’,’1’,’0’,’0’,’0’,’0’,’0’,’0’) AFTER 5 ns; WHEN OTHERS => dout <= (‘1’,’0’,’0’,’0’,’0’,’0’,’0’,’0’) AFTER 5 ns; END CASE; END PROCESS; END decoder_arc;

  5. 下例是另一种激活进程的方式: ENTITY reg ISPORT(d,clk:IN BIT; q1,q2:OUT BIT); END reg; ARCHITECTURE reg_arc OF reg IS BEGIN VHDL的每个结构 体中可以有多个进程 行为语句。 PROCESSBEGIN WAIT UNTIL clk= ‘1’; q1 <= d; END PROCESS; 它的关键之处是: PROCESS BEGINWAIT UNTIL clk= ‘0’; q2 <= d; END PROCESS; END reg_arc; 进程行为语句之间是 并行关系,进程行为 语句内部是顺序关系。

More Related