1.
“ ? ” 是三目操作符,也可以像if和case语句一样作为选择使用。使用“ ? ” ,在4个输入中,找到最小值,并输出。
module top_module (
input [7:0] a, b, c, d,
output [7:0] min
);
//使用assign语句实现
endmodule
2.
参考文章Verilog 归约运算符 使用缩减/归约运算符来计算输入变量的奇偶。
module top_module (
input [7:0] in,
output parity
);
//使用assign语句来实现
endmodule
3.
练习使用其它的缩减运算符。
module top_module(
input [99:0] in,
output out_and,
output out_or,
output out_xor
);
//使用assign语句实现
endmodule
4.
使用for 语句,将一个100-bit的向量颠倒位序。
module top_module(
input [99:0] in,
output [99:0] out
);
//always @(*)...
endmodule
5.
使用for语句,计算一个255-bit向量中“ 1 ”的个数。
module top_module(
input [254:0] in,
output [7:0] out );
//always @(*) ...
endmodule
6.
使用for语句,实现100-bit的全加器。将100-bit的输入向量a和输入向量b进行相加,除了输出100-bit的sum之外,将每1位的进位位cout也输出。
module top_module(
input [99:0] a, b,
input cin,
output [99:0] cout,
output [99:0] sum );
//always @(*)...
endmodule
7.
实现BCD码 加法器,将两个 BCD 数字和ci相加,并产生sum和co。
创建一个 100 位 BCD 全加器,将两个 100 位 BCD 数字(打包成 400-bit向量,bit 0-3是第一个BCD码,bit 4-7是第二个BCD码)和1-bit ci相加,产生一个 100-bit sum和1-bit co。
module top_module(
input [399:0] a, b,
input ci,
output co,
output [399:0] sum );
endmodule
参考代码:
[content_control]
[/content_control]
对应视频:
generate for 例化的时候,对应的输入输出对应关系是直接按照顺序来对应的吗?
如果你指的是用generate for例化模块,那么对应位置例化模块是可以的,除此之外,对应名称例化模块也是可以在gengerate for中是实现的。