摘要关键词:mos管,触发器,累加器,版图,仿真,cadence,模块化设计等。
本次课程设计围绕十二个必做课题和选作课题1、DESIGN FLIP-FLOP:2、DESIGN A CMOS 8-BIT ALU :3、DESIGN A CMOS 8-BIT ACCUMULATOR:4、DESIGN A CMOS 8-BIT MULTIPLIER :5、DESIGN A 8-BIT BIDIRECTIONAL SHIFT REGISTER :6、DESIGN A SYNCHRONOUS 8-BIT UP AND DOWN COUNTER:7、A Pseudo-Random Code Generator :8、8-bit binary divider:9、CRC (cyclic redundancy checker ) :10、7x4 Signed Parallel Division Circuit:11、Automobile Locking Control System:12、Programmable counter :选一个必做课题和一个选作课题,考虑到触发器和累加器是众多器件中比较简单,基础但是又应用广泛的器件,所以选必做选课题为1.DESIGN FLIP-FLOP:触发器的设计,选作课题为3. DESIGN A CMOS 8-BIT ACCUMULATOR:8位CMOS累加器设计,查阅寻找相关资料,了解触发器,累加器工作原理,按定制设计流程设计各自原理图,确定参数,进行版图的绘制,检验无误,即可进行原理图仿真,版图仿真,逻辑验证仿真,也可按ASIC 设计流程设计它们。
通过选题,熟悉对cadence工具的应用,设计过程中运用模块化设计有助于整体的层次分明。
因此在学习了模拟电子技术,数字电子技术,模拟CMOS集成电路设计,数字集成电路设计等的基础上,由晶体管级别的电路连成更为复杂的电路,实现特定的功能。
目录索引第1部分DESIGN FLIP-FLOP1.1 触发器介绍(包括工作原理,功能逻辑等)1.2 D触发器原理图绘制1.3 D触发器原理图仿真及分析1.4 D触发器逻辑功能验证1.5 D触发器版图绘制及仿真分析1.6 小结第2部分DESIGN A CMOS 8-BIT ACCUMULATOR 2.1累加器介绍2.28位累加器原理图绘制2.38位累加器原理图仿真及分析2.48位累加器版图绘制及仿真分析2.58位累加器ASIC设计流程2.6小结第3部分本次课程设计收获与心得第1部分必做实验:DESIGN FLIP-FLOP1.1触发器介绍主从JK触发器是在CP脉冲高电平期间接收信号,如果在CP高电平期间输入端出现干扰信号,那么就有可能使触发器产生与逻辑功能表不符合的错误状态。
边沿触发器的电路结构可使触发器在CP脉冲有效触发沿到来前一瞬间接收信号,在有效触发沿到来后产生状态转换,这种电路结构的触发器大大提高了抗干扰能力和电路工作的可靠性。
下面以维持阻塞D触发器为例介绍边沿触发器的工作原理。
维持阻塞式边沿D触发器的逻辑图和逻辑符号如下图所示。
该触发器由六个与非门组成,其中G1、G2构成基本RS触发器,G3、G4组成时钟控制电路,G5、G6组成数据输入电路。
和分别是直接置0和直接置1端,有效电平为低电平。
分析工作原理时,设和均为高电平,不影响电路的工作。
电路工作过程如下。
状态转移图:由上图可知,维持阻塞D触发器在CP脉冲的上升沿产生状态变化,触发器的次态取决于CP脉冲上升沿前D端的信号,而在上升沿后,输入D端的信号变化对触发器的输出状态没有影响。
如在CP脉冲的上升沿到来前=0,则在CP脉冲的上升沿到来后,触发器置0;如在CP脉冲的上升沿到来前=1,则在CP脉冲的上升沿到来后触发器置1。
1.2 D触发器原理图绘制首先设计三输入与非门的原理图:通过拷贝建立三输入与非门symble,并用此symble建立D触发器原理图:原理图仿真验证结果:延时分析:由图上可知上升延时为 2.484ns-1.515ns=0.969ns,下降延时为4.605ns-4.005ns=0.600ns,Q的上升时间为 3.010ns-2.173ns=0.837ns,下降时间为5.256ns-4.456ns=0.800ns。
1.4 D触发器逻辑功能验证NC验证设置如下:结果如下:1.5 D触发器版图绘制及仿真分析根据原理图画出版图:生成extracted:LVS验证设置如下:结果如下:生成 analog-extracted:作出验证原理图:验证结果如下:版图与原理图仿真结果较为理想。
1.6 小结对边沿D触发器归纳为以下几点:1.边沿D触发器具有接收并记忆信号的功能,又称为锁存器;2.边沿D触发器属于脉冲触发方式;3.边沿D触发器不存在约束条件和一次变化现象,抗干扰性能好,工作速度快第二部分选做实验:DESIGN A CMOS 8-BIT ACCUMULATOR 2.1 累加器介绍累加器就是把一列的数字加起来。
一开始累加器设定为零,每个数字依序地被加到累加器中,当所有的数字都被加入后,得出结果。
实际应用中,1、在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。
能进行加、减、读出、移位、循环移位和求补等操作。
是运算器的主要部分。
2、在中央处理器cpu中,累加器(accumulator)是一种暂存器,它用来储存计算所产生的中间结果。
如果没有像累加器这样的暂存器,那么在每次计算(加法,乘法,移位等等)后就必须要把结果写回到内存,然后再读回来。
然而存取主内存的速度是比从数学逻辑单元(ALU)到有直接路径的累加器存取更慢。
3、在汇编语言程序中,累加器——AX是一个非常重要的寄存器,但在程序中用它来保存临时数据时,最好将其转存到其它寄存器或内存单元中,以防止在其它指令的执行过程中使其中的数据被修改,从而得到不正确的结果,为程序的调试带来不必要的麻烦。
2.2 8位累加器原理图绘制由于全加器与D触发器先前已经做过,可直接做成SYMBOL直接调用,原理图如下:做成SYMBOL2.3 8位累加器原理图仿真及分析仿真结果如下:计算延时:2.3 8位累加器版图绘制及仿真分析(一)、版图绘制生成extracted:进行LVS验证:由上图可知匹配。
(二)、版图验证及仿真:随即选择Q4观察:可知版图与底层原理图仿真结果较为理想。
2.5 8位累加器ASIC设计流程(一)、设计VERILOG程序如下;module accumulator8(accout,cout,accin,cin,clk,clear); output[7:0] accout;output cout;input[7:0] accin;input cin,clk,clear;wire[7:0] sum;add8 accadd8(sum,cout,accout,accin,cin);reg8 accreg8(accout,sum,clk,clear);endmodulemodule add8(sum,cout,b,a,cin);output[7:0] sum;output cout;input[7:0] a,b;input cin;assign {cout,sum}=a+b+cin;endmodulemodule reg8(qout,in,clk,clear);output[7:0] qout;input[7:0] in;input clk,clear;reg[7:0] qout;always @(posedge clk or posedge clear)beginif(clear) qout=0;else qout=in;endendmodule(二)、首先生成.v与.sdc文件:(三)、新建一个文件夹存放encounter文件:(四)、最后做成:(五)、Timing Analysis(六)、Clock Tree Insertion及Routing(七)、Now we have timing closure, with no violating path left.(八)、Verification(十)、也可以检测connectivity of the design2.6 8位累加器小结累加器A(ACCUMULATOR)是一个最常用的具有特殊用途的二进制8位寄存器,又可记作ACC,专门用来存放操作数或运算结果。
在CPU执行某种运算前,大部分单操作数指令的操作数取自累加器;两操作数指令中的其中一个操作数也通常放在累加器A中,运算完成后累加器A中便可得到运算结果。
第3部分本次课程设计收获与心得在这次持续10天的课程设计中,我学到很多,抽象的理论知识,在cadence工具中得到了实际操控(连电路、画版图),理论固然重要,实际操作更为关键。
一次课程设计就是一个小项目,刚开始的时候应该有缜密的计划,合理的按照计划做会使工作效率提高很多很多,当遇到问题时,分析并解决而不是更改计划。
模块化设计是这次课程设计的重点,而版图则是重头戏。
采用标准化单元设计版图,不仅紧密美观,也便于修改,也更符合工艺生产的标准。