|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 modoalos 于 2023-12-12 17:25 编辑
新人跑后仿没发现问题,但是老板找到个x态,不知道为啥会这样
工艺库里该模块代码如下
module DRQHDV0 (D, RD, CK, Q);
input D, RD, CK;
output Q;
reg NOTIFIER;
supply1 xSN;
wire ENABLE_D;
not XX0 (xRN,RD);
buf IC (clk,CK);
udp_dff I0 (n0,D, clk, xRN, xSN, NOTIFIER);
buf I1 (Q, n0);
assign ENABLE_D= (D) ? 1'b1:1'b0;
`ifdef functional // functional //
`else // functional //
not SMC_I5(ENABLE_NOT_RD,RD);
specify
// arc CK --> Q
(posedge CK => (Q : D)) = (1.0,1.0);
if(CK==1'b0 && D==1'b0)
// arc RD --> Q
(posedge RD => (Q : 1'b0)) = (1.0,1.0);
if(CK==1'b0 && D==1'b1)
// arc RD --> Q
(posedge RD => (Q : 1'b0)) = (1.0,1.0);
if(CK==1'b1 && D==1'b0)
// arc RD --> Q
(posedge RD => (Q : 1'b0)) = (1.0,1.0);
if(CK==1'b1 && D==1'b1)
// arc RD --> Q
(posedge RD => (Q : 1'b0)) = (1.0,1.0);
$width(negedge CK,1.0,0,NOTIFIER);
$width(posedge CK,1.0,0,NOTIFIER);
$setuphold(posedge CK &&& (ENABLE_NOT_RD == 1'b1),
negedge D &&& (ENABLE_NOT_RD == 1'b1), 1.0, 1.0, NOTIFIER);
$setuphold(posedge CK &&& (ENABLE_NOT_RD == 1'b1),
posedge D &&& (ENABLE_NOT_RD == 1'b1), 1.0, 1.0, NOTIFIER);
$setuphold(posedge CK &&& (ENABLE_D == 1'b1), negedge RD &&& (ENABLE_D == 1'b1), 1.0, 1.0, NOTIFIER);
$width(posedge RD,1.0,0,NOTIFIER);
endspecify
`endif // functional //
endmodule
`endcelldefine
|
-
|