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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3166|回复: 8

【求助】关于verilog-A的语法问题

[复制链接]
发表于 2019-3-7 10:05:01 | 显示全部楼层 |阅读模式

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

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

x
我想做一个时变电阻R(t)的模块,具体功能就是电阻R(t)随着时间周期性变化,最终的电阻值是由二进制权值电阻阵列控制的。R(t)的函数是已知的。我知道肯定会包括一个计数器模块再加一个register memory,但register memory部分用verilogA应该怎么编写呢?如何给输出端口赋值呢?
贴上已有的代码,还差后面的部分,请大神们指教!提供思路即可!小弟多谢!




  1. 、include"constants.h"
  2. 、include"disciplines.h"
  3. module RDAC(OUT,CLK);

  4. input CLK;
  5. voltage CLK;
  6. output [0:11] OUT;
  7. voltage [0:11] OUT;


  8. integer cnt;
  9. parameter integer K=50;


  10. Analog begin
  11. @cross(V(CLK) -0.5,+1.0)
  12.          
  13. if(cnt>=K)
  14.        cnt=0;
  15. else
  16.         cnt=cnt+1;
  17. end


  18. case(cnt)
  19. 0: OUT=


复制代码
发表于 2019-3-7 18:47:48 | 显示全部楼层
或者可用试试这样





  1.     、include"constants.h"    、include"disciplines.h"
  2.     module RDAC(A,B,CLK);

  3.     input CLK;
  4.     voltage CLK;
  5.     inout A,B;
  6.     electrical A,B;


  7.     integer cnt;
  8.     real rval;
  9.     parameter integer K=50;


  10.     analog begin
  11.     @cross(V(CLK) -0.5,+1.0)
  12.             
  13.     if(cnt>=K)
  14.            cnt=0;
  15.     else
  16.             cnt=cnt+1;
  17.     end


  18.     case(cnt)
  19.     0: rval=1k;
  20.     1: rval=2k;
  21.     ....
  22.    
  23. V(A,B)<+ rval*I(A,B);
  24. endmodule


复制代码
 楼主| 发表于 2019-3-11 15:54:24 | 显示全部楼层
回复 2# david_reg
非常感谢!这个VA模块的功能成功实现了!

(比较遗憾的是,pss仿真并不支持VA模块,所以。。VA模块白写了。。)不过还是很感谢你!
发表于 2019-3-11 20:17:46 | 显示全部楼层
pss仿真可以支持没有hidden state的va模块, 你这个模块中" @cross(V(CLK) -0.5,+1.0)"会产生hidden state. 可以参考一下这个
Hidden State in SpectreRF - Designer's Guide
http://www.designers-guide.org/Analysis/hidden-state.pdf
 楼主| 发表于 2019-3-15 09:27:34 | 显示全部楼层
回复 4# david_reg


   好的,非常感谢!
发表于 2019-3-15 09:34:36 | 显示全部楼层
pss 可以支持Verilog-A模板,似乎只要加一个语句,网上应该可以查到。
 楼主| 发表于 2019-3-21 11:28:27 | 显示全部楼层


david_reg 发表于 2019-3-11 20:17
pss仿真可以支持没有hidden state的va模块, 你这个模块中" @cross(V(CLK) -0.5,+1.0)"会产生hidden state.  ...


看了关于hidden state的很多帖子,但是还是对于上面的代码修改没有思路,可以再指教一下吗?
感觉cnt和rval这两个变量总会依赖上一次迭代的结果,所以避免不了hidden  state。
发表于 2019-4-8 21:41:31 | 显示全部楼层
good info.
发表于 2023-8-28 09:02:30 | 显示全部楼层
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-19 20:16 , Processed in 0.026783 second(s), 6 queries , Gzip On, Redis On.

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