(一)如何快速做一个逻辑综合

(一)如何快速做一个逻辑综合 一、逻辑综合是什么什么是逻辑综合 - 逻辑综合就是将硬件描述语言如VHDL或systemverilog编写的RTL代码转换成门级网表netlist。为什么要做逻辑综合 - RTL是没有和制造工艺直接联系的但是逻辑综合后就会映射到制造工艺而且逻辑综合不仅涉及代码的转换还包括对电路的优化和平衡以确保设计的电路在功能、速度、面积和功耗(PPA)等方面满足既定的约束条件。什么时候做逻辑综合 - 当前端设计也就是逻辑设计进行到一定程度并且需要继续进入后端设计也就是物理设计的时候就需要做逻辑综合所以很多公司也叫做中端设计。二、DC使用方法怎么打开DCdc_shell输入dc_shell就可以直接使用终端打开DC逻辑综合工具了如果是直接source整个tcl脚本可以使用dc_shell -f syn.tcl | tee dc.log三、DC查询命令怎么使用想要查询某个指令在不在使用help *一部分命令*即可要查看具体命令使用方法使用man 命令看到很多内容和--More--想退出就直接按q四、TCL脚本#------------------------------ #set initials set DESIGN_NAME my_module set TAG justrun #跑的核数量 set_host_options -max_cores 8 #存放中间文件的路径 define_design_lib WORK -path ./WORK set RESULTS_DIR ./results/${TAG} if {![file exists $RESULTS_DIR]} {file mkdir $RESULTS_DIR} ; #----------------------------- #set library path set_app_var search_path /tools/Lib/digit_lib/smic180/std/synopsys #搜索路径填库文件后面用库文件时就不用填绝对路径了 #目标库用最慢的库如果最慢的都达标就可以说是达标了 set_app_var target_library slow.db #把库文件与文件名link起来以上只是告诉dc要用这个文件 但是dc还不能用 set_app_var link_path * slow.db; #----------------------------- #elaborate and analyze #这里的路径也可以在sraech_path中定义然后只写文件名下面是绝对路径 read_file -format sverilog ./sources/${DESIGN_NAME}.sv current_design ${DESIGN_NAME} link #hierarchy输出所有的层次。.ddc二进制约束文件 write_file -hierarchy -format ddc -output ${RESULTS_DIR}/${DESIGN_NAME}.precompile.ddc write_file -hierarchy -format verilog -output ${RESULTS_DIR}/${DESIGN_NAME}.precompile.v #----------------------------- #add constraint create_clock -period 1.0 [get_ports clk] #----------------------------- #compile compile_ultra #----------------------------- write_file -format verilog -hierarchy -output ${RESULTS_DIR}/${DESIGN_NAME}.postcompile.v write_file -format ddc -hierarchy -output ${RESULTS_DIR}/${DESIGN_NAME}.postcompile.ddc #change name必须要有上面生成的.v网表中带有\等东西后端读入会有问题下面的会自动把、换成_ #mapped.v才是最终给后端的 change_names -rules verilog -hierarchy write_file -format verilog -hierarchy -output ${RESULTS_DIR}/${DESIGN_NAME}.mapped.v write_file -format ddc -hierarchy -output ${RESULTS_DIR}/${DESIGN_NAME}.mapped.ddc #exit exit五、综合后的数据 | Register Name | Type | Width | Bus | MB | AR | AS | SR | SS | ST | | register_file_reg | Flip-flop | 128 | Y | N | Y | N | N | N | N | Statistics for MUX_OPs | block name/line | Inputs | Outputs | # sel inputs | | my_module/32 | 4 | 32 | 2 | 在第 32 行DC 推断出了一个 4选1、32位输出的多路选择器。