verilog 反相器的设计与仿真

在这里插入图片描述


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
在这里插入图片描述

出现波形图,红框中为全局视图

在这里插入图片描述


Verilog是一种广泛应用于数字电路设计的硬件描述语言。在Verilog中实现反相器非常简单。下面是一个基本的Verilog代码示例: ```verilog module inverter (input wire in, output reg out); always @(posedge in) // 当输入信号变化时触发 begin out = ~in; // 反相器原理:当输入为高电平(1)时,输出为低电平(0),反之亦然。 end endmodule ``` ### 解释: 1. **模块声明** (`module inverter`):定义了一个名为`inverter`的Verilog模块。 2. **端口定义** (`input wire in, output reg out`):说明了两个端口,`in`作为输入端口,并且是一个标准输入(wire)。`out`作为输出端口,并使用`reg`类型表示它会存储状态并保持该状态直到被显式改变。 3. **always块** (`always @(posedge in)`):这个语句意味着当输入`in`的值发生改变时,执行内部的代码。`posedge`表示检测到上升沿的变化。 4. **逻辑表达式** (`out = ~in`):这是反相器的核心功能,当输入`in`为真时(高电平),`out`将变为假(低电平);反之亦然。 5. **结束标记** (`end`):用于闭合代码块。 --- ## 相关问题: 1. **如何验证 Verilog 设计的正确性?** - 使用仿真工具,如ModelSim、Xilinx ISE或Quartus等,输入设计文件,运行仿真测试所有预设的情况。 2. **在实际应用中,如何将 Verilog 硬件描述转换为物理硬件?** - 需要经过综合阶段,将Verilog代码转换为具体的门级网表,然后可以进行布局布线生成最终的FPGA或ASIC芯片。 3. **Verilog 中有哪些常见的数据类型及其用途?** - 常见的数据类型有`logic`, `bit`, `integer`, `realtime`, `time`等。每种类型适用于不同的需求,例如`logic`常用于逻辑操作,而`integer`则用于算术运算。理解这些类型可以帮助更有效地设计电路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值