题目1:构建具有 100 个输入的组合电路,采用[99:0]。
有 3 个输出:
- out_and:100 输入 AND 门的输出。
- out_or:100 输入 OR 门的输出。
- out_xor:100输入异或门的输出。
采用数据流建模的方式,代码如下:
module top_module(
input [99:0] in,
output out_and,
output out_or,
output out_xor
);
assign out_and = ∈
assign out_or = |in;
assign out_xor = ^in;
endmodule
题目2:给定一个 100 位输入向量 [99:0],反转其位顺序(vector100r)。
使用行为级建模方式及for循环实现。
module top_module(
input [99:0] in,
output [99:0] out
);
always@(in)
begin
integer i;
for(i=0;i<100;i=i+1)
out[99-i] = in[i];
end
endmodule
题目3:计算255位输入向量中1的个数。
使用行为级建模方式及for循环实现:
module top_module(
input [254:0] in,
output [7:0] out );
integer count;
always@(in)
begin
integer i ;
count = 0;
for(i=0;i<255;i=i+1)
if(in[i] == 1)
count = count+1;
else
count = count;
end
assign out = count;
endmodule