微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 综合技术问答 > EDA使用问答 > 关于verilog-A的语法问题

关于verilog-A的语法问题

时间:03-15 整理:3721RD 点击:
我想做一个时变电阻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. if(cnt>=K)
  13. cnt=0;
  14. else
  15. cnt=cnt+1;
  16. end


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


复制代码

或者可用试试这样




  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. if(cnt>=K)
  13. cnt=0;
  14. else
  15. cnt=cnt+1;
  16. end


  17. case(cnt)
  18. 0: rval=1k;
  19. 1: rval=2k;
  20. ....

  21. V(A,B)<+ rval*I(A,B);
  22. endmodule


复制代码


非常感谢!这个VA模块的功能成功实现了!
(比较遗憾的是,pss仿真并不支持VA模块,所以。VA模块白写了。)不过还是很感谢你!

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



好的,非常感谢!

pss 可以支持Verilog-A模板,似乎只要加一个语句,网上应该可以查到。


看了关于hidden state的很多帖子,但是还是对于上面的代码修改没有思路,可以再指教一下吗?
感觉cnt和rval这两个变量总会依赖上一次迭代的结果,所以避免不了hiddenstate。

good info.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top