欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数字集成电路版图设计(三)——加法器绘制

程序员文章站 2022-07-14 23:26:19
...

对之前的补充操作

说正题之前,先讲讲之前(二)没涉及到的,但是(三)用到的额外操作吧:

  • BUS连线
  • Verilog版图仿真

Verilog版图仿真
首先Verilog版图仿真,在之前的(一)(二)中介绍了两种TB方式,一种是用pulse产生的脉冲,另一种就是基于Verilog的数模混合仿真。但在INV里版图用的是第一种。那么第二种在Layout绘制后的config里,会发现Environment里面没有switch view list就无法像之前那样直接添加calibre数字集成电路版图设计(三)——加法器绘制
这次在config打开后的选项选这个数字集成电路版图设计(三)——加法器绘制
然后这样把你想要的画好的layout选择calibre
数字集成电路版图设计(三)——加法器绘制
BUS连线
对于Verilog写出的多位寄存器,如 reg [3:0] A这种就会变成这样的BUS类型。想要单个连线就需要一些额外的操作。数字集成电路版图设计(三)——加法器绘制
一张图大家就能知道如何操作了
数字集成电路版图设计(三)——加法器绘制
就是在线上用wire label标注线,然后就和AD的NET非常像,对应就好。

一位全加器

因为多位全加器的基础是一位全加器所以下面演示一位全加器。
基本表达式转换如下
数字集成电路版图设计(三)——加法器绘制
根据复杂CMOS门设计,NMOS设计就是非下面的东西,也就是C0非后AB+Ci(A+B),同理如此。
然后原理图就如下:
数字集成电路版图设计(三)——加法器绘制
如(一)一样设计原理图(不知道怎么画的看系列(一)和(二))
数字集成电路版图设计(三)——加法器绘制
然后TB用Verilog编写如下

`timescale 1ns/10ps

module add_tb (out1,out2,out3);

output out1,out2,out3;
reg out1,out2,out3;

initial begin
	out1=1'b0;
	out2=1'b0;
	out3=1'b0;
	#10;
	out1=1'b1;
	out2=1'b0;
	out3=1'b0;
	#10;
	out1=1'b0;
	out2=1'b0;
	out3=1'b1;
	#10;
	out1=1'b0;
	out2=1'b1;
	out3=1'b0;
	#10;
	out1=1'b1;
	out2=1'b1;
	out3=1'b0;
	#10;
	out1=1'b1;
	out2=1'b0;
	out3=1'b1;
	#10;
	out1=1'b0;
	out2=1'b1;
	out3=1'b1;
	#10;
	out1=1'b1;
	out2=1'b1;
	out3=1'b1;
end
endmodule

数字集成电路版图设计(三)——加法器绘制
仿真原理图
仿真如下
数字集成电路版图设计(三)——加法器绘制
版图绘制
数字集成电路版图设计(三)——加法器绘制
建议
画完后的感觉,首先相对应的NMOS和PMOS要栅极对着放,然后要对其。放每个的时候可以用别的层如TW层写注记符帮忙记住哪个MOS是哪个。每个位置放的时候要想好各个的关系和连线。不然连线很难单层Metal(这里…我改了好久)
一样的进行DRC、LVS、PEX仿真。如最前的Verilog版图仿真测试。
数字集成电路版图设计(三)——加法器绘制

四位加法器

原理如图所示:数字集成电路版图设计(三)——加法器绘制
原理图连接:
数字集成电路版图设计(三)——加法器绘制
TB编写:

"functional"
`timescale 1ns/10ps

module add_4_verilog (A,B,C );
output[3:0]  A,B;
output C;
reg[3:0] A,B;
reg C;
initial begin
	A=4'b0000;
	B=4'b0000;
	C=0;
#10;
	A=4'b1111;
	B=4'b1111;
	C=1;
#10;
	A=4'b0001;
        B=4'b1111;
        C=1;

end

endmodule

TB原理图:数字集成电路版图设计(三)——加法器绘制
Layout:
数字集成电路版图设计(三)——加法器绘制
注意: 将SUB连上(用AA和SN、SP),N-WELL尽量连接在一起,不然就要用N-WELL重新连,但千万不要拆开…不然会出现很多莫名的连线…同时按Del的时候一定要注意有没有选中对象…发现Del后没发生改变直接Undo撤销…不然…哎,Co连Ci,然后重新M1TXT,标注A<3:0>,B<3:0>,Ci0,gnd!,vdd!,S<3:0>,Co3。
仿真结果:
数字集成电路版图设计(三)——加法器绘制
为什么后面的级会出现波动?答:因为冒险和竞争,利用寄存器存储稳定结果即可。

感受:

…画版图…真的累眼睛和脑子…一个加法器也画了3、4天…之后的日子要么继续做FPGA图像处理,利用HLS配合zynq,继续做比赛。要么去用FPGA做CPU,去龙芯杯试试水,做个没得感情的炮灰…(清华的机组实验…为啥我们就…哎)