(菜鸟自己学的应付期末大作业)
1 创建工程
2 设计输入
再点击“Finish”
选择端口,如果是纯手写代码的话,直接点“OK”
开始写代码~
二选一多路器原理:
sel = 1, out = a; sel = 0, out = b;
代码:
module mux2(
a,
b,
sel,
out
);
input a;
input b;
input sel;
output out;
assign out = (sel == 1)?a:b;
endmodule
3 分析综合
检查一下是否有语法错误
4 功能仿真
创建一个mux_tb.v文件。
写仿真代码:
`timescale 1ns / 1ns
module mux_tb();
reg s_a;
reg s_b;
reg s_sel;
wire out;
mux2 mux( //例化
.a(s_a),
.b(s_b),
.sel(s_sel),
.out(out)
);
initial begin
s_a = 0;s_b = 0;s_sel = 0;
#200;
s_a = 1;s_b = 0;s_sel = 0;
#200;
s_a = 0;s_b = 1;s_sel = 0;
#200;
s_a = 1;s_b = 1;s_sel = 0;
#200;
s_a = 0;s_b = 0;s_sel = 1;
#200;
s_a = 1;s_b = 0;s_sel = 1;
#200;
s_a = 0;s_b = 1;s_sel = 1;
#200;
s_a = 1;s_b = 1;s_sel = 1;
#200;
end
endmodule
例化:可以理解成模块调用。
点击“Run Simulation”
得到结果:
可以发现结果是正确的,成功~
(只是为了上课仿真用,后续布局布线、时序仿真、电路验证都没做了)