1、 补充内容浙大微电子韩雁2013.4浙大微电子 1内容 Testbench 工艺离散性的克服 电阻离散的影响 电容离散的影响 频率离散的校正 模拟IC低功耗设计技术浙大微电子 2/41TestbenchTestbench更像一个激励的产生器,对所设计的输入管脚产生相应的输入值(0或者1)系列,也叫“测试矢量”,通过观察输出值来评估设计的正确性。Testbench 的工作就是把这些不同的输入值(测试矢量)加载到所设计的电路中。a b c test0 0 0 10 0 1 10 1 0 10 1 1 11 0 0 01 0 1 01 1 0 01 1 1 1设计模块:test=a|b 浙大微电子
2、3Testbench生成方式1.MaxplusII里面,画高低电平形成testbench。2.Modelsim里面,按照一定规则写testbench。浙大微电子 4/41画testbench输出结果设计模块:test=a|b 浙大微电子 5/41写testbenchtimescale 1ns/10psmodule top_test();reg a_test, b_test, c_test; test test (.a(a_test), .b(b_test), .c(c_test), .test(test_out); /调用设计模块initial begin a_test=0; b_test=0
3、;c_test=0; /初始化#(100) begin a_test=0; b_test=0;c_test=1;end /每100ns赋值一次#(100) begin a_test=0; b_test=1;c_test=0;end#(100) begin a_test=0; b_test=1;c_test=1;end#(100) begin a_test=1; b_test=0;c_test=0;end#(100) begin a_test=1; b_test=0;c_test=1;end#(100) begin a_test=1; b_test=1;c_test=0;end#(100) be
4、gin a_test=1; b_test=1;c_test=1;end#(100) $stop;endendmodule设计模块:test=a|b 浙大微电子 6/41编写testbench规则1.定义仿真步长和仿真精度 timescale 1ns/10ps 2. 定义模块 ,不需 输入输出 列 , testbench 是产生激励 输入输出。module top_test();endmodule3.定义 量 测模块(DUT, Design Under Test)输入相 的 定义 reg 。reg a_test, b_test, c_test; DUT输出相 的 定义 wire , 的输出 不定
5、义, 就是1 bit 的wire 。wire out_signal1, out_signal2,., out_signalN;的浙大微电子 7/41编写testbench规则4. 化DUTDUT_Module_Name DUT_Instance_Name(input1,input 2,output1); 5. 初始化reg initialbeginclk=0;in_signal1=0 /这里加reg 量的初始化值end6.产生 定频率的always #10 clk=clk; /产生一个currency1 20ns的“ 一浙大微电子 8/41编写testbench规则8.产生输入 initial
6、 /initial块是fibegin#100 en=1; /仿真fl始100ns en赋值 1# 200 in_signal1=1 /过200ns ,in_signal1赋 1# 10000000 $stop /仿真,$finish 仿真结 end浙大微电子 9/41Testbench:用系”1.仿真结果 中的内容: $display2. ”:$readmemh(16), $readmemb(2)3.fl :$fopen4. 结果写入 : $fmonitor( 化就写), $fdisplay(定currency1写)5. : $fclose6. 出VCD式 (VCD是一 仿真中 的式, 用作功耗 ): $dumpfile7. 仿真 : $finish(结 ), $stop( )8. 入SDF (一 电路 的 , 用作 仿真): $sdf_annotate浙大微电子 10/41