#130. if…else…语句
if…else…语句
题目描述
if语句用于过程块内部,其对应的电路是二选一的选择器,
以下述代码为例:
always@(*)
begin
if(condition) out = x;
else out = y;
end
上述代码与下面的assign语句完全等效:
assign out = (condition) ? x : y;
试创建一Verilog模块,分别采用assing语句和过程块内的if语句实现下述选择器电路:
Hint:
1.if…else…可以嵌套使用,如
if …
else if…
else if…
else…
2.使用if语句描述组合逻辑时,务必加上else语句,以免产生锁存器(数字电路设计中应尽力避免产生锁存器)
3.本题两个输出信号波形其实是完全一致的,原则上是为了训练大家采用assign和过程块内的if语句使用,所以希望大家能够两种方式都各自尝试一下
输入格式
信号a, b, 选择信号sel_b1, sel_b2
输出格式
通过assign语句选择的信号out_assign 通过if语句选择的信号out_always
示例代码
module top(
input a,
input b,
input sel_b1,
input sel_b2,
output wire out_assign,
output reg out_always);
// 请用户在下方编辑代码
//用户编辑到此为止
endmodule