在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5154|回复: 0

[讨论] 一个奇怪的verilog语法

[复制链接]
发表于 2012-11-6 22:25:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
代码如下,我以为三条CK$delay应看成是字符串,但这样的话就不能实现这个cell的功能(inst的pin与cell的port连不起来),但通过仿真代码发现其是正常工作的,请教各位这是怎么回事儿?我查了IEEE 1364,似乎没找到相关信息,还请各位指导!




  1. module DRNQ_0( CK, RDN, D, Q);
  2. input CK, RDN, D;
  3. output Q;

  4.    `ifdef FUNCTIONAL  //  functional //

  5.    `else

  6.         wire CK$delay ;
  7.         wire RDN$delay ;
  8.         wire D$delay ;

  9.         DRNQ_0$func HSL_DRNQ_0_inst(.CK(CK$delay),.RDN(RDN$delay),.D(D$delay),.Q(Q));


  10.         buf MGM_G0(ENABLE_RDN ,RDN$delay);

  11.    `endif



  12.    `ifdef FUNCTIONAL  //  functional //

  13.         DRNQ_0$func HSL_DRNQ_0_inst(.CK(CK),.RDN(RDN),.D(D),.Q(Q));

  14.    `endif


  15.    `ifdef FUNCTIONAL // functional  //

  16.    `else


  17. // specify block begins

  18.    specify

  19.         // arc CK --> Q
  20.         (posedge CK => (Q : D))  = (1.0,1.0);

  21.         if(CK===1'b0 && D===1'b0)
  22.         // arc RDN --> Q
  23.         (RDN => Q)  = (1.0,1.0);

  24.         if(CK===1'b0 && D===1'b1)
  25.         // arc RDN --> Q
  26.         (RDN => Q)  = (1.0,1.0);

  27.         if(CK===1'b1 && D===1'b0)
  28.         // arc RDN --> Q
  29.         (RDN => Q)  = (1.0,1.0);

  30.         if(CK===1'b1 && D===1'b1)
  31.         // arc RDN --> Q
  32.         (RDN => Q)  = (1.0,1.0);

  33.         $width(negedge CK,1.0,0);

  34.         $width(posedge CK,1.0,0);

  35.         // setuphold D- CK-LH
  36.         $setuphold(posedge CK &&& (ENABLE_RDN === 1'b1),
  37.                 negedge D &&& (ENABLE_RDN === 1'b1),
  38.                 1.0,1.0,,,,CK$delay,D$delay);

  39.         // setuphold D- CK-LH
  40.         $setuphold(posedge CK &&& (ENABLE_RDN === 1'b1),
  41.                 posedge D &&& (ENABLE_RDN === 1'b1),
  42.                 1.0,1.0,,,,CK$delay,D$delay);

  43.         // recrem RDN-CK-posedge
  44.         $recrem(posedge RDN,posedge CK,1.0,1.0,,,,RDN$delay,CK$delay);

  45.         $width(negedge RDN,1.0,0);

  46.    endspecify

  47.    `endif

  48. endmodule
  49. `endcelldefine


复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-29 02:26 , Processed in 0.015480 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表