请教 verilog CDR 建模
没问题,找bang-bang CDR的paper来看看,应该很容易用verilog来实现,低速的用
FPGA来验证都可以
他们的目的是什么,用你的model验证他们自己的function吗?如果是的话,你的CDR model其实不用完全按电路搭,只要enable打开,power和bias给好,能出clock和data就行了,当然data要是对的。这样model起来比较简单,要是按电路去写VCO,loop filter之类就比较麻烦了,而且他们可能也不需要这么精细的model。
如果仅仅验证function,是不是不需要对每个模块建模?
关键verilog和verilogA差别很大,verilog仅仅支持二进制码流吧,很多操作似乎无法实现
通常写model的目的是为了IP给SOC用的时候top logic design可以用来做仿真验证功能,而不是要你每个东西都要按实际电路写出来,你写的东西尽量和analog仿真waveform一致就可以了
个人认为如此。以PLL为例,用户其实不用管内部如何运作,反正enable打开过段时间能出clock就行,内部的LPF,VCO之类用户看不到的东西其实就不用model。当然这也跟用户的需求有关,如果他们要求你给出真实的model,那也没辙,谁掏钱谁是老大么,呵呵。
verilog确实有些局限,但也不是不能做,在module内部还是可以用real number的。你可以想办法把LPF,VCO之类离散化来算频率。
veriloga通常是analog designer才会用的behavior描述语言,logic的验证不会用。站在你的角度用veriloga可能方便点,但是你的IP交给logic的人他们没办法验证
离散化计算会引入一个高速采样的时钟,虽然可以比较精确的模拟settle的时间,lpf的滤波作用和vco相位积分过程,但是仿真速度大幅度下降尤其加入数字电路进行,不过不是特别在乎模拟settle过程的话还是简单一点好毕竟即使做精确的,也远不及spice仿真的效果.
同感。所以我建议用function OK的model就好。这种离散化的model不仅会慢,用起来也比较麻烦,设定稍有不对或者timescale不够精确结果都会很奇怪。
为什么觉得人家垃圾呢?事实上,verilog model往往是一个完备的混合信号IP必备的东西之一,用于数字工程师作为验证的模型,这种模型并不需要精确模拟内部信号的建立,只需要保证端口的行为和实际电路尽量一致。因此建模的精确程度取决于对系统各种行为的理解程度,而建模过程对于设计者理解系统层面运作将有很大帮助。
根据个人经验,数字的仿真大抵是要比模拟快几个数量级的,尤其这种行为级的。。。
比spice快,但对于数字本身的仿真就又慢了.所以对整个数字系统仿真意义不大,除非又想模拟一些频率调制过程对数字的影响.
其实PLL可以model成只run在reference 频率上,不需要更高速的时钟,这样基本不拖累数字仿真验证的速度
lpf滤波等特性应该也足够精确了
毕竟PLL的环路带宽比参考频率要低好多
请教:输出的vco clk如果只有refclk的话怎么做出来?如果不是写一个相位累加或者相位选择模块的话.
另外charge pump后面的LPF是一个RC电路,数字离散化等价成一个FIR滤波器,用refclock来驱动up down信号模拟其充放电过程有点慢了我觉得毕竟这里是一个连续过程. 我曾试过用1G时钟来驱动滤波器和相位累加,效果还可以也有人通路上用C函数模拟,不过速度也不是很快相对数字仿真.