关于verilog-A的语法问题
时间:03-15
整理:3721RD
点击:
我想做一个时变电阻R(t)的模块,具体功能就是电阻R(t)随着时间周期性变化,最终的电阻值是由二进制权值电阻阵列控制的。R(t)的函数是已知的。我知道肯定会包括一个计数器模块再加一个register memory,但register memory部分用verilogA应该怎么编写呢?如何给输出端口赋值呢?
贴上已有的代码,还差后面的部分,请大神们指教!提供思路即可!小弟多谢!
复制代码
复制代码
贴上已有的代码,还差后面的部分,请大神们指教!提供思路即可!小弟多谢!
- 、include"constants.h"
- 、include"disciplines.h"
- module RDAC(OUT,CLK);
- input CLK;
- voltage CLK;
- output [0:11] OUT;
- voltage [0:11] OUT;
- integer cnt;
- parameter integer K=50;
- analog begin
- @cross(V(CLK) -0.5,+1.0)
- if(cnt>=K)
- cnt=0;
- else
- cnt=cnt+1;
- end
- case(cnt)
- 0: OUT=
复制代码
或者可用试试这样
- 、include"constants.h"、include"disciplines.h"
- module RDAC(A,B,CLK);
- input CLK;
- voltage CLK;
- inout A,B;
- electrical A,B;
- integer cnt;
- real rval;
- parameter integer K=50;
- analog begin
- @cross(V(CLK) -0.5,+1.0)
- if(cnt>=K)
- cnt=0;
- else
- cnt=cnt+1;
- end
- case(cnt)
- 0: rval=1k;
- 1: rval=2k;
- ....
- V(A,B)<+ rval*I(A,B);
- 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.