数字后端流程一【Design Compile】实例笔记

更新时间:2023-07-28 05:59:57 阅读: 评论:0

DC 综合
DC 又称为设计综合 将设计的RTL代码综合成门级网表的过程。
在 DC 流程中 一般要经过以下几个步骤,以项目A为例 做如下分析:
1】 在项目子目录下创建DC文件夹,在DC文件夹下分别创建db  in  lib_syn  log  netlist
rpt和 script 文件夹 以及一个makefile 文件用来运行DC 脚本 。
2】 第二步就是复制相应工艺技术库文件到lib_syn  ,一般有2种文件各3个分别包括了typical worst 和 best情况,一类是db,文件一类是lib 文件 也可以在lc_shell 下读取lib 得到相应的db文件。
3】 第三步将需要综合的设计RTL代码(Verilog 文件)复制到in 文件夹
4】 第四步在script 创建综合脚本,脚本创建过程将在后面介绍
5】 第五步编写运行脚本的makefile 文件
6】 第六步运行脚本而后查看综合报告,是否有违例现象出现,如果有修改脚本加以修复直到最终通过设计。
注意 另外的几个文件夹作用 db文件夹存放DC综合生成的项目db文件,综合网表输出到netlist 文件夹,综合程序运行报告存放在log文件夹中,而综合结果的数据报告则存放在rpt 文件夹中。
DC脚本的编写(A.scr)
DC综合脚本基本上有几大部分组成
1】 定义综合环境中命名规则(分别对net cell port 命名)
define_name_rules verilog –cansitive
define_name_rules verilog –type net –allowed  “a-z A-Z 0-9 _ ” \
                      -first_restricted “ _  0-9  N ”  \
                      -replacement_char  “_” \
                      -prefix “n”
define_name_rules verilog –type cell –allowed  “a-z A-Z 0-9 _ ” \
                      -first_restricted “ _  0-9  ”  \
                      -replacement_char  “_” \
                      -prefix “u”
define_name_rules verilog –type port  –allowed  “a-z A-Z 0-9 _ ” \
                      -first_restricted “ _  0-9  ”  \
                      -replacement_char  “_” \
                      -prefix “p”
2】 综合环境的建立
指明库所在的位置
挽联格式Search_path  =  { lib_syn/db }
指定综合所需目标库一般选用最恶劣情况worst 库作目标库
target_library  =  { slow.db}
创建链接库,链接库中包括了一些已经做好的设计和子模块,又包括了当前设计的目标库是设计实例化时所用的库文件
link_library  =  { “ * ” ,  slow.db  }  +  synthetic_library
在上述的环境建立所需的各类库中,一般有生产商提供目标库,库中的各类cell用于逻辑映射,链接库则包括了目标库,还包括其他一些以前设计实例基本单元,我们门级网表实例化元件和单元都来自于它。
3】 RTL 代码的读入
read –format verilog  ./in/ Encoder_32k.v
read –format verilog  ./in/ Encoder_DBLOCK.v
艳山姜
read –format verilog  ./in/ Encoder.v
read –format verilog  ./in/ Step_rom.v
指明设计顶层
current_design  =  Encoder
展开设计分解原设计组
ungroup  -all –flatten
设计唯一实例化
uniquify 
4】 综合环境约束
用户往往需要设置worst ca 和 best ca 的库来验证tup timing 修复 hold timing
不清楚命令使用和属性 可使用 man t_min_library 查看
t_min_library  lib_syn/db/slow.db  -min_version  lib_syn/db/fast.db
编译操作条件的表述
t_operating_conditions  -min slow –min_library  slow \
南华又庐                      -max fast  –max_library  fast
设置wire_load_model
wire_load_model 负载模型的每一种模型定义,它定义相关的net_length 和 net fanout 属性 而wire_load_mode 则不同指的是不同logic margin 连线net的处理方式 一般我们只设置前者
t_wire_load_model  -name  “ Silterra18_w110 ” –min
t_wire_load_model  -name  “ Silterra18_w110 ” –max
设置模块输入驱动强度信息 man t_driving_cell 查看帮助
t_driving_cell  -lib_cell BUFX1 –pin Y –library slow –dont_scale –no_design_rule all_input ( )
5】 设计时钟相关约束
create_clock  clk  -period  40
t_clock_latency  0.3 –ri { clk }
t_clock_latency  0.3 –fall { clk }
t_clock_uncertainty –tup  0.3 { clk }
t_clock_uncertainty –hold  0.3 { clk }
6】 禁止改变门电路控制结构
芯片中的时钟和复位电路一般由门电路控制的,我们不希望DC在综合时候改变它的结构以
保证时钟信号和复位信号的稳定性和可靠性需要设置,禁止对某些单元进行优化
t_dont_touch_network  { clk, rstn }
t_dont_touch  { rstn }
7】 异步电路处理
任何跨越异步边界的路径我们都对其禁止时序分析
t_fal_path  -from  { rstn }  –to  { clk }
8】 悲伤已成曲设置其他可选约束和禁用单元
可选约束一般包括 t_max_fanout  t_max_capacitance  t_max_transition  t_load 等 这些属性一般在技术库中已经设置了,只有技术库不能满足设计要求时才使用脚本增加约束选项
本脚本中只增加了 t_load 0.02  all_output ( )
股市进阶之道
                Set_max_transition 2.5 current_design
输入输出直通buffer 插入,多重端口的连接插入buffer (选用)
t_fix_multiple_port_nets –feedthrough
输出端口插入buffer , 隔离端口 (必须)
t_isolate_ports –type buffer all_output ( )
9】 检查设计层次关系进行单元映射
check_design –one_level
compile –map_effort medium
10】修复hold时序 重新编译
    t_fix_hold {clk }
    compile –only_hold_time
11】导出编译综合相关报告 赚钱最快的方法
    核对网表命名规则修改相关信息
    change_names –rules  verilog –hierarchy –verbo
    检查整体设计导出报告
    check_design  >      ./rpt/adpcm.rpt
    移除未连接的相关端口
    remove_unconnected_ports find ( hierarchy  cell , “ * ”)
    导出设计面积报告
    report_area    >      ./rpt/
    导出设计违例报告
report_constraint –all_violators  >  ./rpt/
导出tup时序违例的详细报告
    report_timing –nworst  50 > ./rpt/adpcm_
    导出hold 时序违例的详细报告
report_timing    -delay min –nworst 20  >  ./rpt/adpcm_
导出综合的设计中cell和reg_cel的报告
report_cell  > ./rpt/
report_cell {find (cell, “*_reg*”)}  > ./rpt/adpcm_
12】生成综合网表和pnr 所需的时序约束文件
处女男水瓶女    write  -hierarchy  -output  ./db/adpcm.db
    write  -format verilog –hierarchy  -output  ./netlist/adpcm.sv

本文发布于:2023-07-28 05:59:57,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1121261.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:综合   设计   脚本   报告   文件   设置   网表   单元
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图