1
.模块的基本组成部分有哪些?哪几个部分必须出现?
答:
模块的基本组成部分包括:
关键?/p>
module
?/p>
模块名?/p>
端口列表?/p>
端口声明和可选的参数声明?/p>
模块内部还有
5
个基本组成部分是:变量声明、数据流语句、低层模块实例、行为语句块以及?/p>
务和函数?/p>
在模块的所有组成部分中,只?/p>
module
、模块名?/p>
endmodule
必须出现,其他部分都是可?/p>
的,用户可以根据设计的需要随意选用?/p>
2
.一个不与外部环境交互的模块是否有端口?模块定义中是否有端口列表?/p>
答:
严格意义上讲,一个模块如果与外界没有任何交互,那么自然是不需要有而且是不可能有端
口的。在没有端口的情况下,端口列表自然也是不存在的?/p>
3
.一?/p>
4
位并行移位寄存器?/p>
I/O
引脚如下图所示。写出模?/p>
shift_reg
的定义,只需写出端口
列表和端口定义,不必写出模块的内部结构?/p>
答:
模块代码如下?/p>
module shift_reg(clock,reg_in,reg_out);
input clock;
input [3:0] reg_in;
output [3:0] reg_out;
//********XXXXXXX**************
endmodule
4
.定义一个顶层模?/p>
stimulus
,在其中声明
reg
变量
REG_IN
?/p>
4
位)?/p>
CLK
?/p>
1
位)以及
wire
变量
REG_OUT
?/p>
4
位)
。在其中调用(实例引用)模块
shift_reg
,实例名?/p>
sr1
,使用顺序端
口连接?/p>
答:
模块代码如下
module stimulus();
reg CLOCK;
reg [3:0] REG_IN;
wire [3:0] REG_OUT;
//*******connect in order************
shift_reg sr1(CLOCK,REG_IN,REG_OUT);
endmodule
移位
寄存?/p>
shift_reg
?/p>
4
位)
reg_in [3:0]
clock
reg_out [3:0]