Verilog的三种描述方式(门级、RTL级、行为级)

您所在的位置:网站首页 pynqz1要写verilog吗 Verilog的三种描述方式(门级、RTL级、行为级)

Verilog的三种描述方式(门级、RTL级、行为级)

#Verilog的三种描述方式(门级、RTL级、行为级)| 来源: 网络整理| 查看: 265

门级: 使用逻辑门这一级别来描述,and、or……,输出部分必须是net类型,门级原语本质是模块实例调用,符合端口连接规则。

RTL 中的寄存器和组合逻辑,直接反应了逻辑门直接的关系,更加接近底层,接近硬件,一般EDA工具可以把RTL描述自动编译为门级描述。所以一般不直接使用门级编程。

module Full_Add_1b_3( A, B, Cin, Sum, Cout ); input A; input B; input Cin; output Sum; output Cout; wire S1, T1, T2, T3; // -- statements -- // xor x1 (S1, A, B); xor x2 (Sum, S1, Cin); and A1 (T3, A, B ); and A2 (T2, B, Cin); and A3 (T1, A, Cin); or O1 (Cout, T1, T2, T3 ); endmodule //两位全加器 `include "Full_Add_1b_3.v" module Full_Add_2b_3( FA, FB, FCin, FSum, FCout ) ; parameter SIZE = 2; input [SIZE:1] FA; input [SIZE:1] FB; input FCin; output [SIZE:1] FSum; output FCout; wire FTemp; Full_Add_1b_3 FA1( .A (FA[1]), .B (FB[1]), .Cin (FCin) , .Sum (FSum[1]), .Cout (FTemp)); Full_Add_1b_3 FA2( .A (FA[2]), .B (FB[2]), .Cin (FTemp) , .Sum (FSum[2]), .Cout (FCout)); endmodule RTL级: 基本语句为连续赋值语句:assign;左值必须是net类型,右值无要求

使用寄存器这一级别的描述方式来描述电路的数据流方式。RTL在很大程度上是对流水线原理图的描述。接近实际电路结构的描述,可以精确描述电路的原理、执行顺序等。其目的在于可综合。

module Full_Add_4b_1( A, B, Cin, Sum, Cout ); input[3:0] A; input[3:0] B; input Cin; output[3:0] Sum; output Cout; assign {Cout, Sum} = A + B + Cin; endmodule 行为级: 结构化过程语句:initial和always,通常借助一些(+)(-)等运算符;左值必须是reg类型,右值无要求;过程赋值语句。 module Full_Add_4b_2( A, B, Cin, Sum, Cout ); input[3:0] A; input[3:0] B; input Cin; output[3:0] Sum; output Cout; reg [3:0] Sum; reg Cout; always @(A or B or Cin) begin {Cout, Sum}


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3