内容发布更新时间 : 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;