完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
DC软件简介
DC( Design Compiler )为Synopsys公司逻辑合成工具。DC得到全球60多个半导体厂商、380多个工艺库的支持。据最新Dataquest的统计,Synopsys的逻辑综合工具占据91%的市场份额。DC是十多年来工业界标准的逻辑综合工具,也是Synopsys最核心的产品。它使IC设计者在最短的时间内最佳的利用硅片完成设计。它根据设计描述和约束条件并针对特定的工艺库自动综合出一个优化的门级电路。它可以接受多种输入格式,如硬件描述语言、原理图和网表等,并产生多种性能报告,在缩短设计时间的同时提高设计性能。Synopsys发布的最新版Design Compiler综合解决方案–Design Compiler。新版本扩展了拓扑技术,以加速采用先进低功耗和测试技术的设计收敛,帮助设计人员提高生产效率和IC性能。拓扑技术可帮助设计人员正确评估芯片在综合过程中的功耗,在设计早期解决所有功耗问题。此外,还支持Design Compiler中新的测试压缩技术,在实现高质量测试的同时,减少测试时间和测试数据量超过100倍,并减少后续物理实现阶段由于测试电路带来的可能的布线拥塞。 新的Design Compiler采用了多项创新综合技术,如自适应retiming和功耗驱动门控时钟,性能较以前版本平均提高8%,面积减少4%,功耗降低5%。此外,Synopsys Formality等效检测解决方案得到了增强,能够独立、彻底地验证这些技术,因此设计者无需舍去验证就可以实现更高的性能。 美国加利福尼亚州山景城,2010年4月6日–全球领先的半导体设计、验证和制造的软件及知识产权(IP)供应商新思科技有限公司(Nasdaq:SNPS)日前宣布:该公司在其Galaxy™设计实现平台中推出了最新的创新RTL综合工具Design Compiler® 2010,它将综合和物理层实现流程增速了两倍。为了满足日益复杂的设计中极具挑战性的进度要求,工程师们需要一种RTL综合解决方案,使他们尽量减少重复工作并加速物理实现进程。为了应对这些挑战,Design Compiler 2010对拓扑技术进行扩展,为Synopsys旗舰布局布线解决方案IC Compiler提供“物理层指引”;将时序和面积的一致性提升至5%的同时,还将IC Complier的布线速度提升了1.5倍。Design Compiler 2010的这一项新功能使RTL工程师们能够在综合环境中进行布局检测,从而可以更快地达到最佳布局效果。此外,Design Complier采用可调至多核处理器的全新可扩展基础架构,在四核平台上可产生两倍提升综合运行时间。 逻辑综合 基本概念 (1)逻辑综合是把设计的高级描述转换成优化后的门级网表 (2)逻辑综合使用包含基本逻辑门的单元库,比如与或非门 (3)设计者需要理解设计架构的描述,在设计中考虑时序、面积、可测试性和功耗 综合流程 Translate:得到的GTECH网表和工艺库没有关系,只是简单的门电路搭建而成。 Optimize:进行优化操作满足时序和面积约束。 Map:将这些优化后的门电路映射到单元库中,再进行时序和面积的优化。 综合的约束驱动 综合可以认为是约束驱动的一个优化过程,约束包括:时序、面积、功耗约束。 其中时序和面积互斥关系:时序约束越紧,得到的面积越大。 工艺相关性 不可综合的verilog 可综合语句:module,input,output,inout,parameter,reg,wire,always,assign, begin…end,case,default,posedge,negedge,or,and,if,function,generate,integer,while,repeat,for(while、repeat循环可综合时,要具有明确的循环表达式和循环条件,for可综合时也要有具体的循环范围),`define 不可综合语句:initial,fork…join,wait,time,display,forever。 保证Verilog HDL赋值语句的可综合性,在建模时应注意以下要点: (1)不能使用initial,initial一般使用在测试程序,做初始化。 (2)不建议使用延时,#1,这种只是模拟数字电路中因为布线产生的信号延时,不可综合,但也不会报错。 (3)不能使用循环次数不确定的函数,但forever在综合设计中禁止使用,只能使用在仿真测试程序中。 (4)尽量使用同步电路设计方式。 (5)除非关键电路设计,一般不建议调用门级元件进行设计,一般使用行为级进行设计。 (6)当使用always进行组合逻辑设计时,敏感列表里面的要列出所有输入信号。 (7)在进行时序电路进行编写时,采样非阻塞赋值。组合逻辑设计时,采样阻塞赋值,但是不能在同一个always语句里两种混合使用。 (8)为避免产生锁存器,if,case要进行完整的语句赋值,且case语句中避免使用X值,Z值。 TCL脚本 Tcl (最早称为“工具命令语言”“Tool Command Language”, 但是目前已经不是这个含义,不过我们仍然称呼它为TCL)是一种 脚本语言。 由John Ousterhout创建。 TCL很好学,功能很强大。TCL经常被用于 快速原型开发,脚本编程, GUI和测试等方面。 准备RTL程序 `timescale 1ns / 1ps module Adder( input clk, input rst_n, input [7:0] a, input [7:0] b, output reg [8:0] p ); always@(posedge clk or negedge rst_n) begin if(!rst_n) p <= 0; else p <= a + b; end endmodule DC的基础操作 Three interfaces to DC: (1)Design Vison (GUI) --> linux % design_vision -topographical_mode (2)DC Shell (shell) --> linux % dc_shell -topographical_mode (3)Batch mode --> linux % dc_shell -topo -f run.tcl | tee -i run.log 点击这里可以生成原理图: 双击原理图中的器件,可以显示详细结构: 综合:Optimize和Map 在dc_shell> 中输入 compile_ultra 命令可以进行Optimize和Map 再次打开Schemetic,可以看到综合结果如下,全部变为门电路和触发器: 如果RTL包含多个子模块,则其中的子模块会被优化掉,全部变成门电路和触发器的连接。 Report 在cmd中运行 dc_shell> report_qor > qor.report 1 可以生成report信息并保存在qor.report文件中,report中包含了时序和面积等信息。 Information: Updating design information... (UID-85) **************************************** Report : qor Design : Adder Version: K-2015.06 Date : Sun Oct 18 22:18:35 2020 **************************************** Timing Path Group (none) ----------------------------------- Levels of Logic: 0.00 Critical Path Length: 0.09 Critical Path Slack: uninit Critical Path Clk Period: n/a Total Negative Slack: 0.00 No. of Violating Paths: 0.00 Worst Hold Violation: 0.00 Total Hold Violation: 0.00 No. of Hold Violations: 0.00 ----------------------------------- Cell Count ----------------------------------- Hierarchical Cell Count: 0 Hierarchical Port Count: 0 Leaf Cell Count: 18 Buf/Inv Cell Count: 0 Buf Cell Count: 0 Inv Cell Count: 0 CT Buf/Inv Cell Count: 0 Combinational Cell Count: 9 Sequential Cell Count: 9 Macro Count: 0 ----------------------------------- Area ----------------------------------- Combinational Area: 131.241596 Noncombinational Area: 139.708800 Buf/Inv Area: 0.000000 Total Buffer Area: 0.00 Total Inverter Area: 0.00 Macro/Black Box Area: 0.000000 Net Area: 0.000000 ----------------------------------- Cell Area: 270.950396 Design Area: 270.950396 Design Rules ----------------------------------- Total Number of Nets: 43 Nets With Violations: 0 Max Trans Violations: 0 Max Cap Violations: 0 ----------------------------------- Hostname: IC Compile CPU Statistics ----------------------------------------- Resource Sharing: 0.04 Logic Optimization: 0.05 Mapping Optimization: 0.52 ----------------------------------------- Overall Compile Time: 10.33 Overall Compile Wall Clock Time: 16.48 -------------------------------------------------------------------- Design WNS: 0.00 TNS: 0.00 Number of Violating Paths: 0 Design (Hold) WNS: 0.00 TNS: 0.00 Number of Violating Paths: 0 -------------------------------------------------------------------- 将网表文件写出来 dc_shell> write -format verilog -hier -output Adder.gv 1 Adder.gv文件: / // Created by: Synopsys DC Ultra(TM) in wire load mode // Version : K-2015.06 // Date : Sun Oct 18 22:29:53 2020 / module Adder ( clk, rst_n, a, b, p ); input [7:0] a; input [7:0] b; output [8:0] p; input clk, rst_n; wire N1, N2, N3, N4, N5, N6, N7, N8, N9, n2, n3, n4, n5, n6, n7, n8; DFFRQXL p_reg[0] ( .D(N1), .CK(clk), .RN(rst_n), .Q(p[0]) ); DFFRQXL p_reg[8] ( .D(N9), .CK(clk), .RN(rst_n), .Q(p[8]) ); DFFRQXL p_reg[7] ( .D(N8), .CK(clk), .RN(rst_n), .Q(p[7]) ); DFFRQXL p_reg[6] ( .D(N7), .CK(clk), .RN(rst_n), .Q(p[6]) ); DFFRQXL p_reg[5] ( .D(N6), .CK(clk), .RN(rst_n), .Q(p[5]) ); DFFRQXL p_reg[4] ( .D(N5), .CK(clk), .RN(rst_n), .Q(p[4]) ); DFFRQXL p_reg[3] ( .D(N4), .CK(clk), .RN(rst_n), .Q(p[3]) ); DFFRQXL p_reg[2] ( .D(N3), .CK(clk), .RN(rst_n), .Q(p[2]) ); DFFRQXL p_reg[1] ( .D(N2), .CK(clk), .RN(rst_n), .Q(p[1]) ); AND2XL U4 ( .A(b[0]), .B(a[0]), .Y(n8) ); AOI2BB1XL U5 ( .A0N(b[0]), .A1N(a[0]), .B0(n8), .Y(N1) ); ADDFX1 U6 ( .A(b[7]), .B(a[7]), .CI(n2), .CO(N9), .S(N8) ); ADDFX1 U7 ( .A(b[6]), .B(a[6]), .CI(n3), .CO(n2), .S(N7) ); ADDFX1 U8 ( .A(b[5]), .B(a[5]), .CI(n4), .CO(n3), .S(N6) ); ADDFX1 U9 ( .A(b[4]), .B(a[4]), .CI(n5), .CO(n4), .S(N5) ); ADDFX1 U10 ( .A(b[3]), .B(a[3]), .CI(n6), .CO(n5), .S(N4) ); ADDFX1 U11 ( .A(b[2]), .B(a[2]), .CI(n7), .CO(n6), .S(N3) ); ADDFX1 U12 ( .A(b[1]), .B(a[1]), .CI(n8), .CO(n7), .S(N2) ); endmodule |
|
|
|
只有小组成员才能发言,加入小组>>
4526个成员聚集在这个小组
加入小组3339 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4268 浏览 1 评论
4295 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 21:07 , Processed in 0.528065 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号