Verilog 教程
在集成电路的早期,工程师必须坐下来在纸上物理绘制晶体管及其连接,以设计它们,以便可以在硅上制造。更大更复杂的电路需要更多的工程师、时间和其他资源,很快就需要有更好的方法来设计集成电路。
VHDL 很快开发出来,通过允许工程师描述所需硬件的功能并让自动化工具将该行为转换为实际的硬件元素(如组合门和时序逻辑)来增强设计过程。 Verilog 旨在简化流程并制作硬件描述语言 (HDL) 更加健壮和灵活。如今,Verilog 是整个半导体行业使用和实践的最流行的 HDL。
Verilog 有什么用处?
Verilog 创建了一个抽象级别,有助于隐藏其实现和技术的细节。
例如,D 触发器的设计需要了解如何安排晶体管以实现正沿触发的 FF,以及将值锁存到触发器上所需的上升、下降和 clk-Q 时间在许多其他面向技术的细节中。功耗、时序以及驱动网络和其他触发器的能力也需要对晶体管的物理特性有更透彻的了解。
Verilog 帮助我们专注于行为,其余的留待以后整理。
示例
以下代码说明了 Verilog 代码的外观。我们将在下一篇文章中深入研究代码的更多细节。暂时让我们简单的理解一下behavior 描述了一个计数器。如果 up_down 信号为 1,则该代码实质上使计数器向上计数,如果其值为 0,则该计数器计数。如果信号 rstn 变为 0,它还会重置计数器,使其成为低电平有效重置。
module ctr (input up_down,
clk,
rstn,
output reg [2:0] out);
always @ (posedge clk)
if (!rstn)
out <= 0;
else begin
if (up_down)
out <= out + 1;
else
out <= out - 1;
end
endmodule
上面显示的简单示例说明了所有物理实现细节是如何被隐藏的,同时仍然提供了计数器如何工作的清晰概念。
ctr 是 module
表示向上/向下计数器,并且可以从针对面积、功率和性能进行优化的各种不同样式的触发器中选择设计的实际物理实现。它们通常被编译成库,供我们在设计过程的后期在 EDA 工具中选择。
既然知道了 Verilog 是什么,那我们就开始学习 Verilog 吧!
Verilog