|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
不明白下面最简单的ff做formality都不过,是什么原因,如何改正?谢谢~
report:
----------------------------------------------------------------------------------------
Matched Compare Points BBPin Loop BBNet Cut Port DFF LAT TOTAL
----------------------------------------------------------------------------------------
Passing (equivalent) 0 0 0 0 1 0 0 1
Failing (not equivalent) 0 0 0 0 0 1 0 1
************************************************************************
ref:
----------------------------------------------------------
module ff(
input d, clk,
output reg q);
always @(posedge clk)
q <= d;
endmodule
-----------------------------------------------------------
imp:(是通过ISE做map后产生的)
-----------------------------------------------------------
`timescale 1 ns/1 ps
module ff (
clk, d, q
);
input clk;
input d;
output q;
wire clk_BUFGP;
wire GLOBAL_LOGIC1;
wire \clk/INBUF ;
wire \q/O ;
wire \d/INBUF ;
wire \clk_BUFGP/BUFG/S_INVNOT ;
wire \clk_BUFGP/BUFG/I0_INV ;
wire \q/OUTPUT/OFF/O1INV_36 ;
wire q_OBUF_39;
wire \q/OUTPUT/OTCLK1INV_33 ;
wire GND;
wire VCC;
initial $sdf_annotate("netgen/map/ff_map.sdf");
X_IPAD \clk/PAD (
.PAD(clk)
);
X_BUF \clk_BUFGP/IBUFG (
.I(clk),
.O(\clk/INBUF )
);
X_OPAD \q/PAD (
.PAD(q)
);
X_OBUF q_OBUF (
.I(\q/O ),
.O(q)
);
X_IPAD \d/PAD (
.PAD(d)
);
X_BUF d_IBUF (
.I(d),
.O(\d/INBUF )
);
X_BUFGMUX \clk_BUFGP/BUFG (
.I0(\clk_BUFGP/BUFG/I0_INV ),
.I1(GND),
.S(\clk_BUFGP/BUFG/S_INVNOT ),
.O(clk_BUFGP)
);
X_INV \clk_BUFGP/BUFG/SINV (
.I(GLOBAL_LOGIC1),
.O(\clk_BUFGP/BUFG/S_INVNOT )
);
X_BUF \clk_BUFGP/BUFG/I0_USED (
.I(\clk/INBUF ),
.O(\clk_BUFGP/BUFG/I0_INV )
);
X_BUF \q/OUTPUT/OFF/O1INV (
.I(\d/INBUF ),
.O(\q/OUTPUT/OFF/O1INV_36 )
);
X_BUF \q/OUTPUT/OFF/OMUX (
.I(q_OBUF_39),
.O(\q/O )
);
X_BUF \q/OUTPUT/OTCLK1INV (
.I(clk_BUFGP),
.O(\q/OUTPUT/OTCLK1INV_33 )
);
X_FF #(
.INIT ( 1'b0 ))
q_22 (
.I(\q/OUTPUT/OFF/O1INV_36 ),
.CE(VCC),
.CLK(\q/OUTPUT/OTCLK1INV_33 ),
.SET(GND),
.RST(GND),
.O(q_OBUF_39)
);
X_ONE GLOBAL_LOGIC1_VCC (
.O(GLOBAL_LOGIC1)
);
X_ZERO NlwBlock_ff_GND (
.O(GND)
);
X_ONE NlwBlock_ff_VCC (
.O(VCC)
);
endmodule
`timescale 1 ps / 1 ps
module glbl ();
parameter ROC_WIDTH = 100000;
parameter TOC_WIDTH = 0;
wire GSR;
wire GTS;
wire PRLD;
reg GSR_int;
reg GTS_int;
reg PRLD_int;
//-------- JTAG Globals --------------
wire JTAG_TDO_GLBL;
wire JTAG_TCK_GLBL;
wire JTAG_TDI_GLBL;
wire JTAG_TMS_GLBL;
wire JTAG_TRST_GLBL;
reg JTAG_CAPTURE_GLBL;
reg JTAG_RESET_GLBL;
reg JTAG_SHIFT_GLBL;
reg JTAG_UPDATE_GLBL;
reg JTAG_SEL1_GLBL = 0;
reg JTAG_SEL2_GLBL = 0 ;
reg JTAG_SEL3_GLBL = 0;
reg JTAG_SEL4_GLBL = 0;
reg JTAG_USER_TDO1_GLBL = 1'bz;
reg JTAG_USER_TDO2_GLBL = 1'bz;
reg JTAG_USER_TDO3_GLBL = 1'bz;
reg JTAG_USER_TDO4_GLBL = 1'bz;
assign (weak1, weak0) GSR = GSR_int;
assign (weak1, weak0) GTS = GTS_int;
assign (weak1, weak0) PRLD = PRLD_int;
initial begin
GSR_int = 1'b1;
PRLD_int = 1'b1;
#(ROC_WIDTH)
GSR_int = 1'b0;
PRLD_int = 1'b0;
end
initial begin
GTS_int = 1'b1;
#(TOC_WIDTH)
GTS_int = 1'b0;
end
endmodule
------------------------------------------------------- |
|