|
发表于 2013-3-22 10:22:46
|
显示全部楼层
楼主好问题啊,我新手现身说法一下,也请有经验的大神帮我看看哪里写错了:)
module fixmultiply(product,a,b,clk);
output [32:1] product;
input [32:1] a,b;
input clk;
wire clk;
reg [32:1] product;
reg [32:1] aa,bb;
reg sign;
reg [62:1] cc;
reg [64:1] ccc,y_out;
always @(posedge clk)
begin
aa<=(a[32]==0)?a:{a[32],~a[31:1]+1'b1}; //??
bb<=(b[32]==0)?b:{b[32],~b[31:1]+1'b1}; //??
sign <= aa[32] ^ bb[32]; //64 bit
cc <= aa[31:1]*bb[31:1]; //62 bit positive data;
ccc <= {sign,1'b1,cc};
y_out <= (ccc[64]==0)?ccc:{ccc[64],~ccc[63:1]+1'b1};
product<=y_out[48:17];
end
endmodule
以上就是我的verilog代码,就是一个流水线的某类乘法器。
以下是得到的sdc文件
###################################################################
# Created by write_sdc on Tue Mar 19 18:45:49 2013
###################################################################
set sdc_version 1.8
set_units -time ns -resistance kOhm -capacitance pF -voltage V -current mA
set_max_dynamic_power 0
set_max_leakage_power 0
set_max_area 0
create_clock [get_ports clk] -period 5 -waveform {0 2.5}
set_clock_transition -rise 0 [get_clocks clk]
set_clock_transition -fall 0 [get_clocks clk]
set_clock_uncertainty -from clk -to clk 0
以下是DC得到的report timing的文件,显示clk为5ns时,slack>0 满足要求。
Information: Updating graph... (UID-83)
Information: Updating design information... (UID-85)
****************************************
Report : timing
-path full
-delay max
-max_paths 1
Design : fixmultiply
Version: D-2010.03-SP2
Date : Tue Mar 19 18:45:52 2013
****************************************
Operating Conditions: tt_1p2v_25c Library: scx3_cmos9sf_rvt_tt_1p2v_25c
Wire Load Model Mode: top
Startpoint: aa_reg[3] (rising edge-triggered flip-flop clocked by clk)
Endpoint: cc_reg[48] (rising edge-triggered flip-flop clocked by clk)
Path Group: clk
Path Type: max
Point Incr Path
--------------------------------------------------------------------------
clock clk (rise edge) 0.00 0.00
clock network delay (ideal) 0.00 0.00
aa_reg[3]/CK (DFFQX2VH) 0.00 0.00 r
aa_reg[3]/Q (DFFQX2VH) 0.14 0.14 f
mult_17/a[2] (fixmultiply_DW_mult_uns_1) 0.00 0.14 f
mult_17/U3496/Y (CLKINVX2VH) 0.04 0.18 r
mult_17/U2162/Y (CLKINVX2VH) 0.17 0.35 f
mult_17/U3482/Y (XNOR2X2VH) 0.11 0.46 f
mult_17/U2605/Y (NAND2BX1VH) 0.32 0.78 f
mult_17/U2615/Y (OAI21X1VH) 0.11 0.89 r
mult_17/U2060/Y (XNOR2X2VH) 0.06 0.95 r
mult_17/U2614/CO (ADDHXLVH) 0.06 1.01 r
mult_17/U2387/CO (ADDHXLVH) 0.05 1.06 r
mult_17/U2575/CO (ADDHXLVH) 0.05 1.11 r
mult_17/U2167/S (ADDFX2VH) 0.11 1.22 f
mult_17/U2398/Y (OR2X2VH) 0.07 1.29 f
mult_17/U2074/Y (AOI22XLVH) 0.08 1.37 r
mult_17/U2148/Y (OAI21X1VH) 0.06 1.43 f
mult_17/U2067/Y (AOI22XLVH) 0.08 1.51 r
mult_17/U2145/Y (OAI21X1VH) 0.05 1.56 f
mult_17/U2188/Y (AOI21XLVH) 0.09 1.65 r
mult_17/U2140/Y (OAI21X1VH) 0.05 1.71 f
mult_17/U2190/Y (AOI21XLVH) 0.09 1.79 r
mult_17/U2141/Y (OAI21X1VH) 0.05 1.85 f
mult_17/U2192/Y (AOI21XLVH) 0.09 1.93 r
mult_17/U2142/Y (OAI21X1VH) 0.05 1.99 f
mult_17/U2194/Y (AOI21XLVH) 0.09 2.08 r
mult_17/U2149/Y (OAI21X1VH) 0.05 2.13 f
mult_17/U2240/Y (AOI21XLVH) 0.09 2.22 r
mult_17/U2150/Y (OAI21X1VH) 0.05 2.27 f
mult_17/U2196/Y (AOI21XLVH) 0.09 2.36 r
mult_17/U2151/Y (OAI21X1VH) 0.05 2.41 f
mult_17/U2242/Y (AOI21XLVH) 0.09 2.50 r
mult_17/U2143/Y (OAI21X1VH) 0.05 2.55 f
mult_17/U2198/Y (AOI21XLVH) 0.09 2.64 r
mult_17/U2144/Y (OAI21X1VH) 0.05 2.69 f
mult_17/U2200/Y (AOI21XLVH) 0.11 2.80 r
mult_17/U2108/Y (OAI21X1VH) 0.06 2.87 f
mult_17/U2146/Y (AOI21XLVH) 0.07 2.93 r
mult_17/U2204/Y (OAI21X1VH) 0.05 2.98 f
mult_17/U2153/Y (OAI2BB1X2VH) 0.07 3.05 f
mult_17/U202/CO (ADDFX2VH) 0.11 3.16 f
mult_17/U2154/CO (ADDFX2VH) 0.11 3.27 f
mult_17/U200/CO (ADDFX2VH) 0.11 3.38 f
mult_17/U2155/CO (ADDFX2VH) 0.11 3.49 f
mult_17/U198/CO (ADDFX2VH) 0.11 3.60 f
mult_17/U2156/CO (ADDFX2VH) 0.11 3.71 f
mult_17/U196/CO (ADDFX2VH) 0.11 3.83 f
mult_17/U2159/CO (ADDFX2VH) 0.11 3.94 f
mult_17/U194/CO (ADDFX2VH) 0.11 4.05 f
mult_17/U193/CO (ADDFX2VH) 0.11 4.16 f
mult_17/U2157/CO (ADDFX2VH) 0.11 4.27 f
mult_17/U191/CO (ADDFX2VH) 0.11 4.39 f
mult_17/U2158/CO (ADDFX2VH) 0.11 4.50 f
mult_17/U189/CO (ADDFX2VH) 0.11 4.61 f
mult_17/U2161/CO (ADDFX2VH) 0.11 4.72 f
mult_17/U187/CO (ADDFX2VH) 0.11 4.83 f
mult_17/U2180/Y (XNOR2X2VH) 0.05 4.88 f
mult_17/product[47] (fixmultiply_DW_mult_uns_1) 0.00 4.88 f
cc_reg[48]/D (DFFRQX2VH) 0.00 4.88 f
data arrival time 4.88
clock clk (rise edge) 5.00 5.00
clock network delay (ideal) 0.00 5.00
cc_reg[48]/CK (DFFRQX2VH) 0.00 5.00 r
library setup time -0.07 4.93
data required time 4.93
--------------------------------------------------------------------------
data required time 4.93
data arrival time -4.88
--------------------------------------------------------------------------
slack (MET) 0.05
以下是我用PT跑出来的时序分析结果,slack<0很多,说明不满足,非常郁闷,不知是谁算错了。。。
****************************************
Report : timing
-path_type full
-delay_type max
-max_paths 3
Design : fixmultiply
Version: D-2009.12
Date : Thu Mar 21 17:33:07 2013
****************************************
Startpoint: product_reg[1]
(rising edge-triggered flip-flop clocked by clk)
Endpoint: product[1] (output port clocked by clk)
Path Group: clk
Path Type: max
Point Incr Path
---------------------------------------------------------------
clock clk (rise edge) 0.00 0.00
clock network delay (ideal) 0.00 0.00
product_reg[1]/CK (DFFRQX2VH) 0.00 0.00 r
product_reg[1]/Q (DFFRQX2VH) 7.90 7.90 r
product[1] (out) 0.00 7.90 r
data arrival time 7.90
clock clk (rise edge) 5.00 5.00
clock network delay (ideal) 0.00 5.00
output external delay -1.00 4.00
data required time 4.00
---------------------------------------------------------------
data required time 4.00
data arrival time -7.90
---------------------------------------------------------------
slack (VIOLATED) -3.90
Startpoint: product_reg[2]
(rising edge-triggered flip-flop clocked by clk)
Endpoint: product[2] (output port clocked by clk)
Path Group: clk
Path Type: max
Point Incr Path
---------------------------------------------------------------
clock clk (rise edge) 0.00 0.00
clock network delay (ideal) 0.00 0.00
product_reg[2]/CK (DFFRQX2VH) 0.00 0.00 r
product_reg[2]/Q (DFFRQX2VH) 7.90 7.90 r
product[2] (out) 0.00 7.90 r
data arrival time 7.90
clock clk (rise edge) 5.00 5.00
clock network delay (ideal) 0.00 5.00
output external delay -1.00 4.00
data required time 4.00
---------------------------------------------------------------
data required time 4.00
data arrival time -7.90
---------------------------------------------------------------
slack (VIOLATED) -3.90
Startpoint: product_reg[3]
(rising edge-triggered flip-flop clocked by clk)
Endpoint: product[3] (output port clocked by clk)
Path Group: clk
Path Type: max
Point Incr Path
---------------------------------------------------------------
clock clk (rise edge) 0.00 0.00
clock network delay (ideal) 0.00 0.00
product_reg[3]/CK (DFFRQX2VH) 0.00 0.00 r
product_reg[3]/Q (DFFRQX2VH) 7.90 7.90 r
product[3] (out) 0.00 7.90 r
data arrival time 7.90
clock clk (rise edge) 5.00 5.00
clock network delay (ideal) 0.00 5.00
output external delay -1.00 4.00
data required time 4.00
---------------------------------------------------------------
data required time 4.00
data arrival time -7.90
---------------------------------------------------------------
slack (VIOLATED) -3.90
1 |
|