当前位置:文档之家› 大规模集成电路设计答案(1)

大规模集成电路设计答案(1)

`CMOS反相器电路图、版图、剖面图CMOS的广泛使用,是由于解决了latch-up效应Latch-up效应解释、原理、解决方法(略)避免栅锁效应方法:用金掺杂或中子辐射,降低少数载流子寿命;深阱结构或高能量注入形成倒退阱;将器件制作于高掺杂衬底上的低掺杂外延层中;沟槽隔离。

在基体(substrate)上改变金属的掺杂,降低BJT的增益•避免source和drain的正向偏压•增加一个轻掺杂的layer在重掺杂的基体上,阻止侧面电流从垂直BJT到低阻基体上的通路•使用Guard ring: P+ ring环绕nmos并接GND;N+ ring环绕pmos 并接VDD,一方面可以降低Rwell和Rsub的阻值,另一方面可阻止栽子到达BJT的基极。

如果可能,可再增加两圈ring。

• Substrate contact和well contact应尽量靠近source,以降低Rwell和Rsub的阻值。

•使nmos尽量靠近GND,pmos尽量靠近VDD,保持足够的距离在pmos 和nmos之间以降低引发SCR的可能•除在I/O处需采取防Latch up的措施外,凡接I/O的内部mos 也应圈guard ring。

• I/O处尽量不使用pmos(nwell)门级电路图(AOI221)AOI221=(AB+CD+E)’伪NMOS:伪NMOS的下拉网络和静态门的下拉网络相似,上拉网络是用一个PMOS管,且此管输入接地,因此PMOS管总是导通的。

动态电路:动态电路用一个时钟控制的PMOS管取代了总是导通的PMOS管,克服了有比电路的缺点。

动态电路速度快,输入负载小,切换时不存在竞争电流,而且动态电路没有静态功耗。

动态电路存在的根本性问题就是对输入单调性的要求。

多米诺电路:多米诺电路由一级动态门和一级静态CMOS反相器构成。

典型结构:下拉网络+上拉预充值网络+反相器构成过程就是充值+求值的过程在多米诺电路中,所有门的预充、求值都可以用一个时钟控制。

求值期间,动态门的输出单调下降,所以静态反相器的输出单调上升。

多米诺电路是同时进行预充,但求值是串行的。

逻辑功效(logic effort)逻辑功效定义为门的输入电容与能够提供相同输出电流的反相器的输入电容的比值。

也就是说逻辑功效表示某个门在产生输出电流时相比反相器的糟糕程度。

逻辑功效不仅使我们能容易计算时延,它也向我们展示了如何确定晶体管的尺寸以优化路径中的延时。

组合逻辑延迟由门延迟和路径延迟组成。

怎样优化延迟?优化门延迟:1、可以加大驱动门的晶体管尺寸2、重新设计逻辑以减少门的扇出优化路径延迟:减少最长延迟的唯一办法就是提高关键路径的逻辑门的工作速度。

可以通过增加晶体管尺寸或减小连线电容来实现。

时序逻辑电路状态机:摩尔机、米莉机建立时间、保持时间传输延迟、污染延迟传输延迟时间:tpd=从输入信号跨越50%到输出信号跨越50%所需的最大时间污染延迟时间:tcd=从输入信号跨越50%到输出信号跨越50%所需的最小时间什么情况下考虑建立/保持时间?跨时钟域、异步电路中的亚稳态问题解决亚稳态的措施1 降低系统时钟2 用反应更快的FF3 引入同步机制,防止亚稳态传播4 改善时钟质量,用边沿变化快速的时钟信号关键是器件使用比较好的工艺和时钟周期的裕量要大。

处理跨时钟域时采用FIFO,或双端口SRAM,或格雷编码传递数据。

格雷编码的好处优点?格雷码(Gray code),又叫循环二进制码或反射二进制码在数字系统中只能识别0和1,各种数据要转换为二进制代码才能进行处理,格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。

格雷码属于可靠性编码,是一种错误最小化的编码方式。

因为,自然二进制码可以直接由数/模转换器转换成模拟信号,但某些情况,例如从十进制的3转换成4时二进制码的每一位都要变,使数字电路产生很大的尖峰电流脉冲。

而格雷码则没有这一缺点,它是一种数字排序系统,其中的所有相邻整数在它们的数字表示中只有一个数字不同。

它在任意两个相邻的数之间转换时,只有一个数位发生变化。

它大大地减少了由一个状态到下一个状态时逻辑的混淆。

另外由于最大数与最小数之间也仅一个数不同,故通常又叫格雷反射码或循环码。

设计时序电路时,同步时序电路其复位策略?同步复位、异步复位的概念?Verilog HDL集成电路设计时,同步复位的策略。

同步复位:复位信号起效时钟控制的到来敏感;异步复位:复位控制对时钟不敏感;同步策略:use ieee.std_logic_unsigned.all;entity count_10 isport(clk,rst,en,up: in std_logic;sum: out std_logic_vector(3 downto 0);cout: out std_logic);end;architecture cnt_10 of count_10 issignal count: std_logic_vector(3 downto 0);beginprocess(clk)beginif rising_edge(clk) thenif (rst='0') thencount<=(others=>'0');elsif en='1' thencase up iswhen '1'=>count<=count+1;when others=>count<=count-1;end case;if (count>=9) thencount<=(others=>'0');end if;end if;end if;end process;sum<=count;cout<='1' when en='1' and ((up='1' and count=9)or(up='0' and count=0) )else '0';end;异步策略:use ieee.std_logic_unsigned.all;entity count_10 isport(clk,rst,en,up: in std_logic;sum: out std_logic_vector(3 downto 0);cout: out std_logic);end;architecture cnt_10 of count_10 issignal count: std_logic_vector(3 downto 0);beginprocess(clk)beginif (rst='0') thencount<=(others=>'0');elsif rising_edge(clk) thenif en='1' thencase up iswhen '1'=>count<=count+1;when others=>count<=count-1;end case;if (count>=9) thencount<=(others=>'0');end if;end if;end if;end process;sum<=count;cout<='1' when en='1' and ((up='1' and count=9)or(up='0' and count=0) )else '0';end;例子为同步复位/异步复位加/减10进制计数器。

时钟分频器:module Div (Clk, Reset, TestN, Ena ) ; input Clk, Reset, TestN ;output Ena;reg [0:3] Counter;a lways@ (posedge Clk) beginif (~ Reset) Counter = 0;elsebegin if (~ TestN) Counter = 15; else Counter = Counter + 1; endendassign Ena = (Counter = = 15) ? 1: 0; endmodule集成电路设计流程(Y图P399):对芯片的划分,什么是划分?为什么做划分?其原则是?划分是将一复杂的设计分成更小部分的方法。

所有的划分应该是先于写任何HDL的。

初始的划分由HDL定义,并且能够使用编译器修改。

逻辑划分是成功综合的关键。

从化分中,可得到更小更快的设计,更简单的综合,更快地编译。

为什么划分?划分由许多需求驱动:1.分离不同的功能模块2.获得可行的尺寸和复杂性3.在一个团队中的处理方案4。

设计再利用。

5.满足物理约束6.还有许多其他要求但重点都是为了更好的综合而进行划分。

划分原则:1.在相同的模块中保持相关联的组合逻辑2.设计再使用3.根据它们的功能性划分模块4.限制一合理的区块大小,区块大小取决于机器的存储容量5.合理划分顶层模块6.不要在顶层模块中添加接口逻辑电路7.避免在一个模块中使用多时钟8.区分开那些带有多个同步时钟的模块9.标出所有的输出。

相关主题