第17讲 VHDL主要描述语句_case语句.ppt
文本预览下载声明
对于数组赋值,可采用下列格式: 信号赋值具有延时性、全局性,赋值符用“=”表示。 对于数组赋值,可采用下列格式: 位置关联赋值和名字关联赋值 --名字关联方式赋值: (3= E, 4=F, 2 =G(1),1=G(2) ):= H; 练习: 用单选择实现求两数中的较大数。 输入:整数a,b; 输出:较大数C 练习: 用二选一结构实现求两数中的较大数。 输入:整数a,b; 输出:较大数C 练习: 用多选择结构实现如下问题: 1.求三个数中的最大数。 输入:整数a,b,c 输出:最大数max 2. Y= 1(X0) 0 (X=0) -1 (X0) FOR_LOOP语句主要用于循环次数已知的循环程序设计。可分为递增方式和递减方式。 说明:循环从循环变量的“初值”开始,到“终值”结束,每执行一次循环体中的顺序语句后,循环变量的值递增或递减1。 【例】用FOR_LOOP语句描述八位奇偶校验器。 WHILE_LOOP语句是一种条件循环语句,用于循环次数未知的循环程序设计。 【例】用WHILE_LOOP语句描述八位奇偶校验器。 单个LOOP语句是最简单的循环方式,这种循环方式需要引入NEXT和EXIT等控制语句后才能确定。 NEXT语句是一种循环控制语句,通常嵌套在LOOP语句中使用,用于进行有条件或无条件的控制执行程序的转向。 根据可选项,NEXT语句有三种格式: 【例】用NEXT_WHEN语句实现单循环。 EXIT语句和NEXT语句一样,都是循环控制语句,主要在LOOP语句中使用,用于进行有条件或无条件的跳转控制。 根据可选项,EXIT语句有三种格式: 【例】用EXIT语句实现两个数组的比较。 BEG maximun(in1,in2,tmp1); maximun(tmp1,in3,tmp2); q = tmp2; END rtl; 并行断言语句 并行断言语句的书写格式为: ASSERT 条件 [REPORT 报告信息] [SEVERITY 出错级别] 并行断言语句的书写格式与顺序断言语句的书写格式相同。顺序断言语句只能用在进程、函数和过程中,而并行断言语句用在结构体中。任何并行断言语句都对应着一个等价的被动进程语句,被动进程语句没有输出,因此并行断言语句的执行不会引起任何事件的发生,只是在断言条件为“false”时给出一条信息报告。 例: LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; USE IEEE. STD_LOGIC_UNSIGNED.ALL; ENTITY example IS END example; ARCHITECTURE behave OF example IS SIGNAL comb: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN ASSERT FALSE REPORT“This entity is a example to descript assert statement” SEVERITY NOTE; END behave; 参数传递语句 参数传递语句(GENERIC)主要用来传递信息给设计实体的某个具体元件,如用来定义端口宽度、器件延迟时间等参数后并将这些参数传递给设计实体。使用参数传递语句易于使设计具有通用性,例如,在设计中有一些参数不能确定,为了简化设计和减少VHDL程序的书写,我们通常编写通用的VHDL程序。在设计程序中,这些参数是待定的,在模拟时,只要用GENERIC语句将待定参数初始化即可。 参数传递语句的书写格式为: GENERIC(类属表); 例: LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; ENTITY and2 IS GENERIC(DELAY:TIME:= 10 ns); PORT(a:IN STD_LOGIC; b:IN STD_LOGIC; c:OUT STD_LOGIC); END and2; ARCHITECTURE behave OF and2 IS BEGIN c = a AND b AFTER(DELAY); END behave; 元件例化语句 元件例化就是将预先设计好的设计
显示全部