|  | 
 
| 
最近在学习约束的一些东西,有些不明白的地方,想请教各位:
×
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册  写的简单的串并转换代码:
 module shift #(parameter DATIN_WIDTH = 16,
 parameter DATO_WIDTH  = 16)
 (
 input  clk,
 input  rst_,
 input  ld,
 input [DATIN_WIDTH-1:0] data_in,
 input  shift_in,
 input  shift_en,
 output shift_out,
 output reg [DATO_WIDTH-1:0] data_out);
 
 always @(posedge clk or negedge rst_)
 begin
 if(!rst_)
 data_out<= 'b0;
 else if(ld)
 data_out <= data_in;
 else if(shift_en)
 data_out<= {data_out[DATO_WIDTH-2:0],shift_in};
 end
 
 assign shift_out = data_out[DATO_WIDTH-1];
 endmodule
 
 在synplify9.6.2中的作了简单约束,其中.sdc文件所作的约束内容:
 define_input_delay -disable      -default -improve 0.00 -route 0.00
 define_output_delay -disable     -default -improve 0.00 -route 0.00
 define_input_delay               {rst_}  1.00 -improve 0.00 -route 0.00
 define_input_delay               {ld}  1.00 -improve 0.00 -route 0.00
 define_input_delay               {data_in[15:0]}  1.00 -improve 0.00 -route 0.00
 define_input_delay               {shift_in}  1.00 -improve 0.00 -route 0.00
 define_input_delay               {shift_en}  1.00 -improve 0.00 -route 0.00
 define_output_delay              {shift_out}  2.00 -improve 0.00 -route 0.00
 define_output_delay              {data_out[15:0]}  2.00 -improve 0.00 -route 0.00
 时钟在 implementation options 中约束在100MHz。
 
 最后在时序分析报告察看:
 Input Ports:
 Port             Starting            User           Arrival     Required
 Name            Reference       Constraint     Time        Time         Slack
 Clock
 ----------------------------------------------------------------------------------
 data_in[0]      System (rising)     1.000          1.000       11.671       10.671
 data_in[1]      System (rising)     1.000          1.000       11.671       10.671
 .
 .
 ld              System (rising)     1.000          1.000       10.310       9.310
 rst_            System (rising)     1.000          NA          NA           NA
 shift_en        System (rising)     1.000          1.000       10.694       9.694
 shift_in        System (rising)     1.000          1.000       11.671       10.671
 
 Output Ports:
 Port                 Starting             User          Arrival     Required
 Name               Reference          Constraint     Time        Time         Slack
 Clock
 -------------------------------------------------------------------------------------
 data_out[0]      shift|clk (rising)     2.000          6.961       8.000        1.039
 data_out[1]      shift|clk (rising)     2.000          6.961       8.000        1.039
 .
 .
 data_out[15]     shift|clk (rising)     2.000          6.961       8.000        1.039
 shift_out        shift|clk (rising)     2.000          6.961       8.000        1.039
 =======================================================
 
 请问,代码中只有一个时钟clk,为什么会在输入的里面时钟那一项是system,而且后面详细的报告也有:
 ====================================
 Detailed Report for Clock: shift|clk
 ====================================
 。。。
 
 ====================================
 Detailed Report for Clock: System
 ====================================
 。。。
 两个报告。这两个报告有什么关系,这个system该如何理解?
 | 
 |