用SpectreVerilog进行模数混仿,以Sigma-Delta ADC为例
SpectreVerilog模数混仿, 模拟部分用Spectre, 数字部分用Verilog-XL. 所以还需要安装Cadence LDV软件, 其内含Verilog-XL仿真器.传奇故事2010
这里以自行设计的二阶全差分Sigma-Delta ADC为例, 详细介绍用SpectreVerilog的仿真过程. 所用工艺库为TSMC 0.18u,电源电压:1.8V.
1. 准备
Sigma-Delta ADC分模拟和数字部分两块, 其中模拟部分为调制器, 数字部分为数字滤波器. 如下图. 其中out为调制器的输出, 这里是1位0,1数据流. 数字滤波器为Verilog RTL级代码. Schematic:
首要任务
Symbol:
Verilog Code:
module DigitalFilter (in2out, out, clk, clr, in);
output in2out;中兴u720
output [`wordsize-1:0] out;
input clk;妇科新药
input clr;
input in;
reg in2out;
wire clk_half1, clk_half2;
……
Endmodule
eisi
同时为了直观的观看输出结果,因此把输出的数字字转化为模拟量,这里用Verilog-A做一个理想的DA转换器。
因此最好事先用Spectre仿真模拟部分, 用ModelSim或Verilog-XL等仿真数字部分. 这里假定我们已有:
1) 模拟部分的原理图(包括Symbol);
2) 数字部分的Verilog代码,DigitalFilter.v, 模块名:DigitalFilter(in2out,out,clk,
clr,in);
3) 数字部分的TestBench代码, DigitalFilter_TB.v, 模块名: DigitalFilter_TB.
下图为最终的系统图:
2. 创建数字模块的Symbol
1) 新建一个Cell, View Name为symbol, Tool: Composer-Symbol.
2) 画Symbol. 简单地, 画一个矩形框, 添加几个Lable, 然后添加Pin.
天鹅湖音乐赏析3) 添加Pin. 左边输入, 右边输出. 对于多位的pin可以用如out<7:0>的样式作为pin的名字. 注意: 与模拟部分相连的多位Pin最好不要用一个pin, 而要用多个. 如下图.
4) 创建对应的Verilog文件. 在symbol编辑器中, Design菜单->CreatCellView->From CellView.
会弹出的对话框, Tool/Data Type一栏选择Verilog-Editor, 则To View Name会变为functional.
点击OK, 会弹出错误对话框, 点No. 自动弹出VI编辑器, 可以看到已经生成Verilog代码的空壳.
代码文件的路径在VI编辑器的标题栏上. 下面要做的就是把我们的数字模块(不是TestBench)的
代码填进去. 如果不想用VI编辑器, 也可以用其他文本编辑器. 复制代码时最好不要动自动生成
的代码. 经测试, 所有代码最好放在一个文件中.
这一步之后,数字部分就会有functional和symbol两个View。
这样基于Verilog代码的Symbol就创建完了.
3. 创建理想DAC
这里用Cadence自动生成的理想DAC。
同步骤2,首先创建Symbol,如下图: