微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 输入端口激励问题,跪求

输入端口激励问题,跪求

时间:10-02 整理:3721RD 点击:
是这样的。最近我在搞1553b总线协议代码漏洞检测,因为条件有限,就分成了发送和接收来搞,现在是这样:直接对分模块的.vhd源代码测试成功,可以跑通。但用Dc综合后,都成了串口,那么测试文件激励也要改一下,好嘛。跑不通了。真不明白为什么。哪位大神遇到过这种类似情况。求帮助

代码,仿真波形放出了,你这样写,看不懂



   哎。代码太大,而且我们不能把它放网上,门级网表也很大,3M,放了也没意义。其实我问的就是,为什么直接对代码测试能通过,对综合出的门级网表测试就通不过。

是不是由于你的组合逻辑delay太长导致的,前仿真是仿不出问题的,门级仿真加了延时导致跑不过

这应该由SDC保证,看看综合结果有没有timing violation

在我看来,属于时序约束问题,不知道各位大神怎么看。



   大神。我是初学者。dc脚本应该没加计算延时,因为没生成sdf。我们期望的是将代码加入一种逻辑,然后综合成网表。
综合后的文件夹里面只有.mr 和.syn文件,还有生成的_syn.v文件。


以下是脚本。哪位大神帮我看看好吗。我是初学者,脚本是别人写的,我想知道是综合后确实发生了门级延时,但没生成sdf文件,还是这种综合只是不考虑延时的一种“理想网表”
   ###################################### Current Design: TOP1553

# Load up design files
# uncomment one of the following
#analyze -format verilog TOP1553.v
analyze -format vhdl {if1553.vhd sysreg.vhd fifo.vhd transmitter.vhd rt1553.vhd receiver.vhd  encode10m.vhd encode.vhd  dpram.vhd  decode10m.vhd decode.vhd  TOP1553.vhd}

# Tell dc_shell the name of the top level module
elaborate TOP1553

# set a clock
create_clock {ext_clk clk}

# Check for warnings/errorsa
check_design -multiple_designs

# ungroup everything
ungroup -flatten -all

# flatten it all, this forces all the hierarchy to be flattened out
set_flatten true -effort high
uniquify

# compile the design
compile_ultra -area_high_effort_script
#compile_ultra -timing_high_effort_script
#compile_ultra

# Now that the compile is complete report on the results
report_area
report_timing
report_power

############################### begin: renaming section
# remove the following renaming section when not needed
# define the name rules for rename
define_name_rules verilog -remove_port_bus
define_name_rules verilog -remove_internal_net_bus

# name rule for nets
define_name_rules verilog -type net -allowed "a-z A-Z 0-9 _" \
-first_restricted "_ 0-9 N" \
-replacement_char "_" \
-prefix "n"

# name rule for cells
define_name_rules verilog -type cell -allowed "a-z A-Z 0-9 _" \
-first_restricted "_ 0-9" \
-replacement_char "_" \
-prefix "u"

# name rule for ports
define_name_rules verilog -type port -allowed "a-z A-Z 0-9 _" \
-first_restricted "_ 0-9" \
-replacement_char "_" \
-prefix "p"

# change names of variables
change_names -rule verilog -hierarchy

################################ end: renaming section

# Write out the design
write -f verilog TOP1553 -output TOP1553_syn.v

remove_design -all

exit

create_clock {ext_clk clk} //太简单了,我写个大体示例
create_clock -period 10 -name clk [get_port clk] //时钟频率一定要定义
set_clock_uncertainty xxxx [get_clk clk]
set_input_delay  1.7 -clock clk {input signal list}
set_output_delay 1.0 -clock clk {output signal list}
还有对reset 的约束, false-path, multi-cycle 等到。

# Now that the compile is complete report on the results
report_area
report_timing
report_power
write_sdf xxxx.sdf //把sdf 生成出来,在仿真的时候load进去



   谢谢大神,我试试。对了,我们那个脚本看来是没有定义输入延时和输出延时,那么就是说我们的脚本出来的就是理想情况,零延时了?
那咋就仿真不通呢。

后仿需要load sdf,你先生成出来,再反标回去



   大神,我们的代码综合出来的网表还有个问题和sdf文件不匹配比如  reg [2:0] data   综合出来后就是data_0_,data_1_,data_2_,这样的格式,然后sdf里面要求的是data_reg[0],data_reg[1]这样的
请问什么语句是给内部端口命名的希望改成sdf文件匹配的,我把脚本再给您粘贴一下。麻烦了,指点小白
###################################### Current Design: TOP1553

# Load up design files
# uncomment one of the following
#analyze -format verilog TOP1553.v
analyze -format vhdl {if1553.vhd sysreg.vhd fifo.vhd transmitter.vhd rt1553.vhd receiver.vhd  encode10m.vhd encode.vhd  dpram.vhd  decode10m.vhd decode.vhd  TOP1553.vhd}

# Tell dc_shell the name of the top level module
elaborate TOP1553

# set a clock
create_clock {ext_clk clk}

# Check for warnings/errorsa
check_design -multiple_designs

# ungroup everything
ungroup -flatten -all

# flatten it all, this forces all the hierarchy to be flattened out
set_flatten true -effort high
uniquify

# compile the design
compile_ultra -area_high_effort_script
#compile_ultra -timing_high_effort_script
#compile_ultra

# Now that the compile is complete report on the results
report_area
report_timing
report_power

############################### begin: renaming section
# remove the following renaming section when not needed
# define the name rules for rename
define_name_rules verilog -remove_port_bus
define_name_rules verilog -remove_internal_net_bus

# name rule for nets
define_name_rules verilog -type net -allowed "a-z A-Z 0-9 _" \
-first_restricted "_ 0-9 N" \
-replacement_char "_" \
-prefix "n"

# name rule for cells
define_name_rules verilog -type cell -allowed "a-z A-Z 0-9 _" \
-first_restricted "_ 0-9" \
-replacement_char "_" \
-prefix "u"

# name rule for ports
define_name_rules verilog -type port -allowed "a-z A-Z 0-9 _" \
-first_restricted "_ 0-9" \
-replacement_char "_" \
-prefix "p"

# change names of variables
change_names -rule verilog -hierarchy

################################ end: renaming section

# Write out the design
write -f verilog TOP1553 -output TOP1553_syn.v

remove_design -all

exit

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top