inv.v:
编译器UltraEdit
// 2021-1-15 verilog学习
// 反相器设计
`timescale 1ns/10ps // 一个时间单位 1ns,精度是10ps
module inv(A,Y);
input A; // 输入端口
output Y; // 输出端口
assign Y=~A; // 输入输出关系 ~取反
endmodule
// testbench of inv 测试台
module inv_tb; // 测试台没有测试端口,不用括号:inv_tb()
reg aa; // 定义寄存器型变量 锁存功能 取名为aa
wire yy; // 定义线性变量,值不定 取名为yy
inv inv(
.A(aa),
.Y(yy)
);
initial begin
aa<=0;
#10 aa<=1; // 过10个时间单位
#10 aa<=0;
#10 aa<=1;
#10 $stop; // $stop 停止
end
endmodule
8位反相器只需在 input,output 后加 [7:0]
仿真:
仿真器 modelsim
change 工作目录到程序文件 inv.v 所在目录
new library
编译,点击compile图标(右上),找到程序目录,点击inv.v文件,依次点击 complie,done
仿真,点开work,点击测试台 inv_tb,右键选择 simulate
打开波形观察器 wave
添加波形观察器变量
restart,依次点击run,run all
出现波形图,红框中为全局视图