1 - 基本逻辑门代码设计和仿真
设计流程的改变:
反相器:
八位反相器:
与非门:
四位与非门:
位逻辑操作运算符:
多位宽电路符号图画法(打斜杠写数字):
代码结构:
时间作者
module 功能
timescale
module (端口名)
端口属性【输入输出】
输入输出关系
endmodule
module testbench; // testbench 没有端口,不带括号,但要写分号
定义输入输出,输入 reg,输出 wire,把信号接到例化后的 module 里面。
异名例化 module
initial 按时间定义各个变量的值
endmodule
例子:
//2021.11.15 lyw
//反相器设计
//1ns的时间单位,10ps的时间精度
`timescale 1ns/10ps
module inv (
A,
Y
);
input A ;
output Y ;
assign Y=~A;
endmodule
//测试代码 testbench 不带括号
module inv_tb;
reg aa ;
wire yy ;
inv inv(
//异名例化
.A (aa ),
.Y (yy )
);
initial begin
aa<=0;
//#10表示过十个时间单位
#10 aa<=1;
#10 aa<=0;
#10 aa<=1;
//仿真停止用Verilog的系统任务
#10 $stop;
end
endmodule
代码关键:assign 组合逻辑赋值语句,用 initial 语句块写 testbench。
PS:
学习内容总结自网络,主讲教师为北京交通大学李金城老师。