1 多路选择器
根据表达式画出其逻辑电路如下图所示。
2 数据流建模
2.1 硬件代码
数据流建模主要是通过连续赋值语句 assign 来描述电路的功能。 根据这一逻辑电路图,利用Verilog HDL实现2选1选择器的逻辑电路,示例如下:
module m_mux21(a,b,s,y);
input a,b,s; // 声明3个wire型输入变量a,b,和s,其宽度为1位。
output y; // 声明1个wire型输出变量y,其宽度为1位。
assign y = (~s&a)|(s&b); // 实现电路的逻辑功能。
endmodule
2.2 激励代码
设计一个激励代码,对设计的选择器的功能进行仿真:
#include "verilated.h"
#include "verilated_vcd_c.h"
#include "obj_dir/Vm_mux21.h"
VerilatedContext* contextp = NULL;
VerilatedVcdC* tfp = NULL;
static Vm_mux21* top;
void step_and_dump_wave(){
top->eval();
contextp->timeInc(1);
tfp