Verilog逻辑设计实例系列一解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Add_full
Add_full
Add_full
Add_full
Add_half
Add_half
norf201
invf101
xor
nawk.baidu.comd
not
xor
nand
not
Add_full的完整描述如下所示:
module Add_full (sum, c_out, a, b, c_in); output input wire Add_full_0_delay Add_full_0_delay or endmodule sum; a,b, c_in; w1,w2,w3; M1 (w1,w2,a,b); M2 (sum,w3,w2,c_in); M3 (c_out,w2,w3);
例1. 一个16位行波进位(ripple-carry)加法器
可由4个4位行波进位加法器级联而成,每个单元所产生 的进位从最低位开始逐次传递至下一级的进位输入端。每 个4位加法器都可视为是全加器的级联。下图说明了一个 零延时16位行波进位加法器Add_rca_16_0_delay的 层次划分和端口信号连接关系,该理想化模型忽略了门的 传播延时。
图 (a)顶层 原理图符号
图 (b)分解为4个4位加法器
图4.7 (c)继续分解为全加器和半加器
Add_rca_16_0_delay的完整描述如下所示:
module Add_rca_16_0_delay (sum, c_out, a, b, c_in);
output [15:0] output input [15:0] input wire Add_rca_4 M1 Add_rca_4 M2 Add_rca_4 M3 Add_rca_4 M4 endmodule sum; c_out; a,b; c_in ; c_in4, c_in8, c_in12,c_out; (sum[3:0], c_in4, a[3:0], b[3:0], c_in); (sum[7:4], c_in8, a[7:4], b[7:4], c_in4); (sum[11:8], c_in12, a[11:8], b[11:8], c_in8); (sum[15:12], c_out, a[15:12], b[15:12],c_in12);
Add_half_0_delay的完整描述如下所示: module Add_half_0_delay (sum,c_out,a,b);
output input
xor and endmodule
sum, c_out; a,b;
M1 (sum,a,b); M2 (c_out,a,b);
Add_rca_16 Add_rca_4 Add_rca_4 Add_rca_4 Add_rca_4
Add_rca_4_的完整描述如下所示:
module Add_rca_4 (sum, c_out, a, b, c_in);
output [3:0] output input [3:0] input wire Add_full M1 Add_full M2 Add_full M3 Add_full M4 endmodule (sum[0], (sum[1], (sum[2], (sum[3], sum; c_out; a,b; c_in ; c_in2, c_in3, c_in4; c_in2, c_in3, c_in4, c_out, a[0], a[1], a[2], a[3], b[0], b[1], b[2], b[3], c_in1); c_in2); c_in3); c_in4);
4.下图所示的二进制全加器电路。 附加了_0_delay的模块表明没有考虑传播延时。
4.1全加器门级电路原理图
4.2全加器Verilog模型
module Add_full_0_delay(sum,c_out,a,b,c_in); input a, b, c_in; output sum, c_out; wire w1,w2,w3; Add_half_0_delay M1 (w1,w2,a,b); Add_half_0_delay M2 (sum,w3,c_in,w1); or (c_out,w2,w3); endmodule
2 三输入与非门及其Verilog原语化举例
… nand(y,a,b,c); …
3.有5输入与非门(AOI)功能 的相互连接起来的基本门原语的声明
wire y1,y2; nor (y_out,y1,y2); and (y1,x_in1,x_in2); nand(y2,x_in3,x_in4,x_in5);
模块可以嵌套在其他模块内,但不能以循环 方式嵌套。当一个模块被其他模块引用时,结构 化层次就形成了嵌套和被嵌套的设计结果,这种 层次形成了一种划分,并且表示了引用嵌套和被 嵌套之间的关系。引用模块称为父模块,被引用 的模块称为子模块,即包含子模块的模块是父模 块。 如:零延时全加器Add_full_0_delay中 的两个零延时半加器Add_half_0_delay是 Add_full_0_delay的子模块。尽管模块内可 能包含其他的模块和基本门,但基本门中不能再 嵌套其他任何东西。
设计实例系列(一) Verilog 逻辑设计介绍
1. 半加器的原理图及其Verilog描述
module Add_half_0_delay (sum,c_out,a,b);
input
output xor and endmodule
a,b;
c_out,sum; (sum,a,b); (c_out,a,b);