VHDL习题 - 图文 下载本文

内容发布更新时间 : 2024/11/6 8:13:22星期一 下面是文章的全部内容请认真阅读。

1.数字电路设计中通常采用的两种设计方法: 和 。 2.声明一个名为reg_a的32位寄存器,且其第0位为最高有效位: , 再声明一个含有256个字的存储器MEM,每个字的字长为32位: 。 3.从模块内部来看,输入端口必须为 数据类型;输出端口可以是 数据类型。从模块外部来看,输入端口可以为 数据类型;输出端口必须是 数据类型。assign语句中被赋值的信号必须是 数据类型;always和initial语句块中被赋值的信号必须是 数据类型;

4.在对模块调用(实例引用)的时候,可以使用两种方法将定义端口与外部环境连接起来: 和 5.基本的逻辑门可以分为两类: 和 。

6.若A=4’b0011;B=4’b0100,则A&&B= ,{A ,~B}= 。 7.Verilog HDL用两个符号分别表示不确定值和高阻值,不确定值用 表示,高阻值用 表示。

8.若信号发生跳变,关键字 指正向跳变, 指负向跳变。 9.关键字 和 将多条语句组成顺序块;而并行块用 关键字 和 作为开始和结束标志。 10.填写下面的语句 reg FF1,FF2,FF3,output; always @(posedge Clock) begin

end

11. 填写使其上升延迟为1,下降延迟为3,关断延迟为2。

notif1 (out,in,en); 12. a=4’b1011, &a=

13. 为什么用硬件描述语言来设计数字电路系统?

14. 模块的基本组成部分有哪些?哪些部分是必须出现的? 15. 阻塞赋值与非阻塞赋值的区别?并举例说明。

一.一个四位脉动进位加法器由4个一位全加器组成。(a)定义一位全加器模块FA,不需要

定义模块的内容和端口列表 (b)定义四位脉动进位加法器模块Ripple_add,不需要定义模块的内容和端口列表,在该模块中调用4个FA类型的全加器模块,把他们分别命名为fa0,fa1,fa2,fa3。 二.判断标识符的合法性

System1 1reg $latch exec$ ftuy@ 三.声明下面的verilog变量

a. 名为a_in的8位向量线网

b. 一个名为address的32位寄存器,第31位为最高有效位;将此寄存器的值设置为

十进制数3

c. 一个名为count的整数

d. 一个名为snap_shot的时间变量

e. 一个名为delays的数组,该数组中包含20个integer类型的元素 f. 含有256个字的存储器MEM,每个字的字长为64位 g. 一个值为512的参数cache 四.写出下面语句的输出结果

latch=4’d12;

$display(“the current value of latch =%b”,latch); 五.一个四位并行移位寄存器的I/O引脚如下图。

reg_in[3:0] 移位寄存器 shift_reg(4位) reg_out[3:0] clk

a. 写出模块shift_reg的定义,只需写出端口列表和端口定义,不必写内部结构。 b. 定义顶层模块stimulus,对外无端口,在内部声明reg类型变量REG_IN(4位)和

CLK(1位)以及wire变量REG_OUT(4位),并在其中实例引用模块shift_reg,实例名为sr1,采用两种实例引用的方法完成。 c. 写出REG_IN和clk的层次名。

六.假设已有全加器模块FullAdder,若有一个顶层模块调用此全加器,连接线分别接信号

W4,W5,W3,W1和W2。请在调用时正确地填入I/O的对应信号。

module FullAdder(A,B,Cin,Sum,Count); input A, B, Cin; output Sum, Cout;

……… endmodule

module Top.....

FullAdder FA( , ,

, , ); …… endmodule

七.假设模块D实现逻辑功能: out = (a · b) + c。模块D的逻辑图如下,其中包含了一个

延迟时间为5个单位的与门和一个延迟时间为4个单位的或门。试画出仿真波形图。

八.指出每条语句的执行时间,以及a,b,c,d在仿真过程中的中间值和结束时的值是什么? (1) initial begin

a=1’b0;