收藏 分销(赏)

ASIC后端设计.docx

上传人:s4****5z 文档编号:8803901 上传时间:2025-03-02 格式:DOCX 页数:10 大小:95.18KB 下载积分:10 金币
下载 相关 举报
ASIC后端设计.docx_第1页
第1页 / 共10页
ASIC后端设计.docx_第2页
第2页 / 共10页


点击查看更多>>
资源描述
ASIC后端设计 本芯片采用传统的后端设计流程,从门级网表开始的,根据抗辐射芯片的要求进行扁平流程设计。 扁平流程(Flat flow)介绍    Trial:80%模块设计完成 数据库准备,流程确认,流程运行中问题的解决,主要设计数据(芯片大小,总体布局,大体时序)的可行性确认。 First Sign Off:100%设计,DFT,I/O完成  数据库已确定,时序收敛基本完成,没有大的拥塞(congestion)。 Final Sign Off:  最后细小的功能修改,时序收敛    所有时序和布局布线问题解决。 1.质量检查(Quality check)         在流程的开始,根据前端设计结束后提供的:门级网表(gate level netlist),时序约束(timing constraint)和时序分析报告(timing analysis report)进行后端设计。其中网表文件要求确认没有以下情况:文法错误,连接短路,无任何连接的net,无驱动的输入引脚(pin),assign语句, wire类型以外的net,使用了由"\"开始的特别字符,数据总线的写法,名字的长度等,不同的厂家和软件对此都会有一些限制,为了后续工作的方便,后端工程师会提前定义一套比较严格的网表书写规则。 然后通过分析时序约束文件,检查时序设定是否完整、合理。最后要流览时序分析报告,如果有setup violation存在的话,一般不允许大于时钟周期的10%,hold violation暂时可以不解决,留到布线后再去除。 2.  I/O单元布置(I /O Place)         按顺序摆放I/O PAD,并考虑内部各模块的位置、电源PAD 的个数和种类。不同种类的信号PAD需要不同种类的电源,模拟信号及其电源本身都需要与其它信号隔离,电源PAD的个数计算要兼顾芯片封装的最低要求和芯片内部的功耗。 在本ASIC设计中,预计有334个I/O接口。在后端设计中给相应接口配置电源/地,所需数量约为30%-50%。其中电源/地有3.3V和1.2V两种,3.3V的数量约为电源地总数量的1/3,1.2V的数量约为电源地总数量的2/3。 在本ASIC设计中,APS的16位数据输入信号、clk输入信号以及控制信号需要进行同步,保证进入ASIC内核模块时的延时相等。后端工程师在布置I/O单元时会通过cadence virtuoso选择等延时布线,即能保证时序上的一致性。 3. 兆单元布置(Megacell Place)         ADC、DAC、PLL、memory这类部件属于兆单元或称宏单元,所有的后端EDA布局软件都有自动放置兆单元的功能,在本ASIC设计中这一步由后端设计人员手工劳动,从而保证抗辐射性能和延时控制。排放前要同前端工程师沟通,了解运算数据的流向、各大模块间的关系和位置,依此来决定兆单元的大体位置。在逐一放置各个兆单元时,要考虑其引脚的位置、方向、数量及相互间的对应关系,因为兆单元常常会禁止几层金属布线层的使用,所以要注意给穿过它的信号线留有足够的空间,特别是兆单元之间的距离。如果兆单元本身没有电源环,则要在它四周留下更大的空间以备加环。环的宽度由厂商提供的公式,依速度、数据变化率求得。有些软件可以将相邻的几个兆单元合在一起做个环以节省空间,此时公共环的宽度应该是各个单独环宽度中最大者。常见的布局规划方法是兆单元 (放在四周,标准单元(standard cell)放在中间。留给标准单的空间形状以方形为好,应尽量避免采用预留L形,U形或几个分离的标准单元空间方法。 4.  行通道生成(Row Generation)         行通道是为放标准单元的,其整体形状已经被兆单元的位置大致决定,行通道和兆单元之间会保留有一定的空间,以利于兆单元的信号连线。在兆单元(之间做少许行通道,以备连线过长,加缓冲器接力,或生成时钟树时使用。 5.  电源布线(Power Routing)         电源布线前需要进行功耗估算,准确的功耗估算可以防止耗过大,芯片封装无法承受核供电不足而影响速度等问题,后端设计时会在管脚和面积允许的范围之内多留一些富裕。电源布线时依各个模块的功耗不同,布线密度并不相同。布线完了用IR drop检验整体的供电情况。在传统的通过四周管脚供电、标准单元放在中央的设计中,标准单元集中的列的四周应该考虑加一圈电源环,环的宽度按如下方法计算:环的宽度= 所有row的电源线宽度之和 / 四周直接供电电源条数之和。 6.  布局(Placement)         布局主要指的是如何合理地放置标准单元.在本设计中使用抗辐射单元库,从而保证器件整体的抗辐射性能。布局可以简单地根据单元的连接进行,也可以根据时序要求来做,还可以以拥塞程度)为主进行。本芯片根据任务书对时序要求的设计按照按时序要求来布局,此时根据前端设计的时序约束进行布局。在布局开始之前,根据ASIC内部结构分组或分区,对边界的连接单元需要进行时序约束保证时序收敛。在定义分组或分区时,允许一定百分比的单元放在分组或分区之外,从而保证芯片内核整体的时序收敛。如果使用有时序要求的布局,而布局用的时序工具与布线或计算延迟用的工具不一样,后端工程师会注意引擎之间的计算误差。 7.  时钟树(Clock Tree) 时钟树文件ctstch中包含了设计对于时钟的要求。encounter按照这个文件设定的时钟特性,自动产生时钟树的布局布线,插入buffer提高时钟树的驱动能力,改善时钟信号延时特性。         做时钟树时需考虑以下几项必要的指标:树的根结点、时钟周期、 树的最大延迟、树的最小延迟、扭曲(skew)、传递时间和缓冲器的种类。还有一些可选项:特别要作叶子的结点(leaf pin)、特别不要作叶子的结点 (excluded pin)和特别需要保留在时钟树里的单元保护单元等。通过排列各个指标的优先顺序,按其特点设定一组特别的参数,可以检测出软件的潜在能力。通过CADENCE的CTGen,如果设定树的最小延 迟为 0.0ns, 树的最大延迟为0.1ns, 扭曲(skew)为0.0ns或是设定树的最小延迟为0.0ns, 树的最大延迟为10.0ns, 扭曲为0.0ns,在这两种不近情理的极端情况下,可以得到最小延迟和最小扭曲的时钟树。时钟树对位置十分敏感,后端设计人员通过微调中间单元的位置从而达到最均衡的结果。再复杂一些的问题有:门时钟,生成时钟,多时钟和时钟树与时钟树之间的扭曲。一般软件可以自动处理gated clock,但是不一定会处理generated clock 和multiple clock,解决方法是:让软件做两次树的生成,第一次生成主要的树,第二次生成另一个,并在已经做好的树的根结点上加一个特别的延迟,对于时钟树与时钟树之间的扭曲,如果软件不会自行处理,则要用树的最大最小延迟来控制。做时钟树时也要计算线间延迟,所以同样会有布局中提到的不同时序工具之间的误差的问题。有些软件会利用时钟扭曲帮助解决setup冲突,其结果是时钟扭曲(clock skew)很大,但是时序很好。 8.  静态时序分析和优化(STA & OPT)         经过上面的后端步骤,如果没有拥塞问题,则按预估线长提取延迟数据作静态时序分析和再优化。分析延迟数据的精度和误差和静态时序分析所用条件的更改,包括把理想时钟变成传播时钟、输入和输出延迟的更改、再优化时是否提供了详细的布局信息和所用时序工具之间的误差等。 9.  布局工程变更(Placement ECO)         ECO是指所变更(包括增加和删除)单元(cell)的总数少于10%的情况,如有太大的变更则从头进行后端处理。如果不想变更时钟树,则要求 ECO没有触发器的增减和位置的挪动,但是可以允许变更现有触发器的大小 ,如果时钟树尚未布线。而一般的逻辑组合单元则可以作任何的修改。布局变更和静态时序分析和再优化可以多次循环,直到没有大的冲突为止。 10.  布线 (Routing)         布线时首先留出模拟信号用的走线和隔离空间。然后考虑时钟树的布线,此时因为还没有数字信号走线,所以可以有很大的自由来选择用传输速度较快的金属层作时钟树布线。最后是数字信号布线。其中有一些关键路径,则可以加权给这些net,让它们优先被布线。布好线的结果中,如果没有大面积或集中在一起的布线问题,可以暂时不去修正自动布线产生的小问题,而先作STA,因为很可能会有布线工程变更要作。 11.  静态时序分析和再优化(STA & OPT)         布线工作完成之后,此时提取出来的延迟数据比较接近真实值,在此基础上进行再优化,从而有效地去除任何setup和hold冲突 。其它注意事项与布局后的STA&OPT相似。如软件优化之后,仍然有少量冲突存在,则需要后端设计人员进行手工修改。 12. 布线工程变更(Routing ECO)         这时ECO所受到的限制比布局变更时更多,不能有任何触发器的修改,只能变更逻辑组合单元。任何与时钟树相连单元的变更都会导致时钟树连线的变化,为了尽可 能地减少对时序的影响,建议用手工做时钟树的修改。布线变更可以循环多次,直到所有setup和hold violation去除为止。 13. Dummy Metal的增加 各个代工厂都有对金属密度的规定,使其金属密度不要低于一定的值,以防在芯片制造过程中的刻蚀阶段对连线的金属层过度刻蚀从而降低电路的性能。主要做法是加入Dummy Metal从而增加金属的密度。 14. DRC和LVS。DRC是对芯片版图中的各层物理图形进行设计规则检查(spacing , width),它也包括天线效应的检查,以确保芯片正常流片。LVS主要是将版图和电路网表进行比较,来保证流片出来的版图电路和实际需要的电路一致。DRC和LVS的EDA工具通常为Synopsy hercules/ mentor calibre/ CDN Dracula。 15.  签收交付(Tap Out) 以上是对传统的后端flat流程的简单介绍,在实际工作中,还会根据产品要求增加附加工作,例如对有小修改的网表做形式验证,做详细的仿真,以确保电路与原设计功能一致,写一些脚本程序去帮助完成工作。 原型验证 FPGA原型验证在SoC开发设计流程中的位置如下图所示。从图可知,FPGA原型验证就是将经过逻辑设计和前仿真及QTV(Quality,Testing,Verification)分析后的门级网表,通过工艺重新映射转成FPGA网表,并把它加到相应的FPGA原型验证机中,并通过规定的接口在该系统硬件环境中进行在系统验证。通过在系统验证可以仿真电路各种情况,便于发现潜在的问题。在系统验证通过后,就可以进行下一步版图设计。 原型验证流程如上图所示,首先输出ASIC芯片的VHDL或Verilog格式的门级网表,并将其转换成所选FPGA类型的EDIF网表,在FPGA设计软件Altera公司的QuartuslI或者是Xilinx公司的Foundation中调入,经过适配、布线。构造出FPGA的上电配置数据,然后通过编程器对EEPROM进行编程。同时,进行FPGA原型验证板的原理设计(可采用Protel等软件),完成后进行FPGA原型验证板印制板图设计,制作印制电路板。进行FPGA原型验证板的焊接电配,形成最终的FPGA原型验证板,然后将该板通过接口插入到系统中,就可以进行验证了。 FPGA原型验证平台的软件环境设计 上图为FPGA原型验证平台的软件环境的设计,不仅包括对特殊的RTL代码及相关约束的修改,如门控时钟的处理、硬IP核替换等,还要根据特定的硬件平台,增加FPGA相关的约束,并搭建一个能自动仿真和验证的环境。因为在这一过程中RTL代码和约束要经过多次修改,仅靠手工进行维护非常容易出错,而这些错误是很难检验的。所以必须建立一个足够完善的软件环境,能够在人的稍微干预下,自动完成以上处理,并易于错误定位。下面分类介绍搭建软件环境的几个主要环节。 1.门控时钟的处理 在SoC的设计中,经常会用到门控时钟,如下图所示。 在图中,当en为l时,时钟clk可传送到gclk;当en为0时,gclk恒为0。为了防止实际芯片中en和elk延迟差异可能造成的毛刺,该电路还需要一个latch锁住en的状态。对于ASIC的设计,使用者可以根据芯片使用情况把一些不用的模块的时钟关闭,这将大大降低芯片的功耗。 由于FPGA芯片特定的结构,其全局时钟线非常有限,并且经过与门输出的信号传输到全局时钟需要很大的额外延时,这使得图(a)电路很难在FPGA中实现。可以采用图(b)所示的电路来代替门控时钟的功能,把源时钟clk和en信号分别接到每个触发器端。当on信号为0时,elk信号虽不停止,但触发器并不触发,这使得该电路的功能与图(a)相同。该方法把芯片内的时钟线数大大缩小,使之可以采用全局时钟线布线。这样就避免了由于时钟线的延时所产生的时序问题,提高了系统的性能。 目前,DC_FPGA综合工具可以支持门控时钟的自动处理,它要求把RTL代码中门控时钟单元改写成特定的风格,并增加几条约束语句,即可实现自动处理。 2.硬IP核的替换和RTL的重新整合 在ASIC设计中,经常会使用一些硬IP核,如PLL、SRAM、ADC、USB transceiver等,这些电路大部分属于模拟电路,无法在FPGA中实现。对于PLL、SRAM等模块,一般采用FPGA内部的时钟管理资源和存储资源来实现,只要在RTL调用关系上作些调整即可。对于其它硬IP核的调用,需要在开发板上选用同样功能的芯片,与FPGA共同实现它们的功能。在RTL级中,首先要取消对硬IP核的调用,然后在Quartus II软件约束中,把原先连接IP的信号绑定到FPGA的I/O上,并与功能芯片的特定信号相接。由于用于替换硬IP的资源很难做到在引脚和功能上完全一致,还需要根据具体情况对RTL代码稍作修改。对于多FPGA原型验证,需要把SoC设计分成几个部分,分别在不同的FPGA上实现。这时主要应考虑FPGA资源的合理利用以及功能的完整性,让各个FPGA完成相对独立的功能,这将简化RTL代码的分割。 3.约束的移植 在IC的后端设计中,需要加入很多时序、功能等约束,如最大时钟周期、false path、重命名等,这些约束在FPGA实现过程中也要求有效,但因FPGAT具软件约束语法不同,需要进行约束的移植。综合工具DC_FPGA与Dc的约束语法兼容,可以直接采用Dc的约束语句。 另外,还要加入FPGA的相关约束,主要包括FPGA后端布局布线策略的设置、存储器初始化和I/O的绑定等约束。 (4)自动仿真环境搭建 验证人员把测试各个模块的汇编程序和RTL代码输入,仿真环境会自动编译程序并把生成的指令和数据初始化到RAM中,并开始仿真。在仿真过程中会自动把所要求的寄存器或RAM中的内容与正确的值相比较,并给出正确与否的结论,同时也会生成相应的波形和日记文件以供分析。FPGA后端环境同时备前端仿真环境的验证功能,并且与前端环境保持一致,这保证了同一个激励程序分别在前后端的环境下仿真,可以得到相同的结果。当出现不一致时,比较生成的波形就很容易定位FPGA后端操作中的问题。 基于上述分析,建立FPGA后端仿真环境首先要求在FPGA后端工作的每个步骤中,从层次结构,命名规则等方面都要与前端RTL代码保持一致,这可以通过工具软件中相应的约束来实现。另外,仿真中要求能把汇编程序下载到片内RAM中,而QuartusII软件生成的仿真模型中,片内RAM已经变成了由很多块block RAM拼成,对它们的初始化会很复杂。解决方案是在后端静态时序分析都正确的情况下,把OuartusII软件生成的仿真模型文件中的RAM替换成与前端仿真模型中的RAM相一致,这既保证了与前端一致,也方便了对其初始化和检测内容。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服