Nov
15
Compxlib Help in ISE7
Compxlib General Answer Record 15338
Compxlib的文档说明在Synthesis and Simulation design guide (sim.pdf)中。
我用的compxlib命令:
modelsim_pe: compxlib -s mti_se -arch all -dir d:\XilinxLib\ISE82
运行Compxlib前先将modelsim.ini设为非只读,compxlib就能修改modelsim.ini进行map。
相关文章:
Ricky版 ModelSim Tips
Ricky版 FPGA FAQ
Compxlib General Answer Record 15338
Compxlib的文档说明在Synthesis and Simulation design guide (sim.pdf)中。
我用的compxlib命令:
modelsim_pe: compxlib -s mti_se -arch all -dir d:\XilinxLib\ISE82
运行Compxlib前先将modelsim.ini设为非只读,compxlib就能修改modelsim.ini进行map。
相关文章:
Ricky版 ModelSim Tips
Ricky版 FPGA FAQ
Nov
9
1. waveform compare
比较两个wlf文件。
Tools -> Waveform Compare -> Comparision Wizard
2. dataflow hierarchy
在dataflow窗口显示出某个信号所在的hierarchy。
Dataflow窗口 -> Tools -> Options -> Show Hierarchy
3. udo file
将某个添加了除顶层端口信号的wave的do文件保存下来,以便下一次开启时不用重新添加信号和restart。此方法是我觉得最简单的调试方法。
Wave窗口 -> File -> Save -> Format -> x.do
打开do文件并将有用的内容复制到ISE工程目录下的.udo文件中,以后每次做仿真都可以不用再添加信号了。
如果更改了源代码需要重新compile,也不需要将ModelSim关掉,只需要按向上键,执行一次xx.fdo或者xx.tdo文件即可,因为fdo和tdo文件都会自动调用udo。
4. Verilog FSM state name
Verilog写的状态机在仿真时状态名是数字。如果能使用状态名来调试就会方便许多。
使用virtual function。太长,方法请参考这里
http://etdata.blogbus.com/logs/2006/10/3695479.htm...
5. ModelSim的系统设置
ModelSim的设置信息一个是modelsim.ini,另一个在注册表[HKEY_CURRENT_USER\Software\Model Technology Incorporated\ModelSim]路径下
6. 如果要使用两个自己编译的库
众所周知,ModelSim PE/SE是要编译Xilinx库的。如果既想要ISE8.1的库,又想要ISE8.2的库,直接编译两次会使ModelSim的lib极其混乱。
解决方案就是,保留三个modelsim.ini文件,一个8.1的,一个8.2的,一个原始的。8.1的和8.2的很好理解,什么时候要用就复制到Modelsim安装目录下去;原始的为了以后还要编译别的版本而保留。
7. 保存所有信号记录
可以将所有信号的翻转情况记录下来,如果需要在Wave窗口再添加信号,就不用restart,添加信号,然后再重新run了。
8. Change Directory
改变当前目录,可以使用File菜单下的Change Directory,也可以在Transcript窗口中直接输入cd命令。
只不过cd命令不认windows中的反斜杠,会以为这是一个转义符。解决方法当然有很多,比如手动把所有的\都改成/。
更方便的方法是在这个用到\的路径两边加上花括号,比如:
比较两个wlf文件。
Tools -> Waveform Compare -> Comparision Wizard
2. dataflow hierarchy
在dataflow窗口显示出某个信号所在的hierarchy。
Dataflow窗口 -> Tools -> Options -> Show Hierarchy
3. udo file
将某个添加了除顶层端口信号的wave的do文件保存下来,以便下一次开启时不用重新添加信号和restart。此方法是我觉得最简单的调试方法。
Wave窗口 -> File -> Save -> Format -> x.do
打开do文件并将有用的内容复制到ISE工程目录下的.udo文件中,以后每次做仿真都可以不用再添加信号了。
如果更改了源代码需要重新compile,也不需要将ModelSim关掉,只需要按向上键,执行一次xx.fdo或者xx.tdo文件即可,因为fdo和tdo文件都会自动调用udo。
4. Verilog FSM state name
Verilog写的状态机在仿真时状态名是数字。如果能使用状态名来调试就会方便许多。
使用virtual function。太长,方法请参考这里
http://etdata.blogbus.com/logs/2006/10/3695479.htm...
5. ModelSim的系统设置
ModelSim的设置信息一个是modelsim.ini,另一个在注册表[HKEY_CURRENT_USER\Software\Model Technology Incorporated\ModelSim]路径下
6. 如果要使用两个自己编译的库
众所周知,ModelSim PE/SE是要编译Xilinx库的。如果既想要ISE8.1的库,又想要ISE8.2的库,直接编译两次会使ModelSim的lib极其混乱。
解决方案就是,保留三个modelsim.ini文件,一个8.1的,一个8.2的,一个原始的。8.1的和8.2的很好理解,什么时候要用就复制到Modelsim安装目录下去;原始的为了以后还要编译别的版本而保留。
7. 保存所有信号记录
引用
log -r /*
可以将所有信号的翻转情况记录下来,如果需要在Wave窗口再添加信号,就不用restart,添加信号,然后再重新run了。
8. Change Directory
改变当前目录,可以使用File菜单下的Change Directory,也可以在Transcript窗口中直接输入cd命令。
只不过cd命令不认windows中的反斜杠,会以为这是一个转义符。解决方法当然有很多,比如手动把所有的\都改成/。
更方便的方法是在这个用到\的路径两边加上花括号,比如:
引用
cd {F:\Project}
Nov
7
整理来源:http://www.edacn.net/index.php/action_viewthread_t...
1、语法
声明:
parameter xx = yy;
`define XX YY
使用:
xx
`XX
2、作用域
parameter 作用于声明的那个文件;`define 从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。
如果想让parameter或`define作用于整个项目,可以将如下声明写于单独文件,并用`include让每个文件都包含声明文件:
`ifndef xx
`define xx yy // or parameter xx = yy;
`endif
`define也可以写在编译器最先编译的文件顶部。通常编译器都可以定义编译顺序,或者从最底层模块开始编译。因此写在最底层就可以了。
3、作用
parameter可以用作例化时的参数传递。具体方法参见《Verilog例化时的参数传递》一文
1、语法
声明:
parameter xx = yy;
`define XX YY
使用:
xx
`XX
2、作用域
parameter 作用于声明的那个文件;`define 从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。
如果想让parameter或`define作用于整个项目,可以将如下声明写于单独文件,并用`include让每个文件都包含声明文件:
`ifndef xx
`define xx yy // or parameter xx = yy;
`endif
`define也可以写在编译器最先编译的文件顶部。通常编译器都可以定义编译顺序,或者从最底层模块开始编译。因此写在最底层就可以了。
3、作用
parameter可以用作例化时的参数传递。具体方法参见《Verilog例化时的参数传递》一文
Oct
26
1、ModelSim网站
www.model.com
2、ModelSim文档:User Manual, Tutoral等
http://www.model.com/resources/resources_manuals_d...
3、ModelSim Demo
http://www.model.com/resources/resources_demos.asp
4、各种小技巧-Tech Notes
http://www.model.com/support/technotes_select.asp
ModelSim的Demo很好,采用Flash互动,讲得也很清楚。
www.model.com
2、ModelSim文档:User Manual, Tutoral等
http://www.model.com/resources/resources_manuals_d...
3、ModelSim Demo
http://www.model.com/resources/resources_demos.asp
4、各种小技巧-Tech Notes
http://www.model.com/support/technotes_select.asp
ModelSim的Demo很好,采用Flash互动,讲得也很清楚。
Oct
26
读了一下Spartan3E的PreAmp+ADC的Reference Design的Notes,应该说这两个器件用起来都很简单。
对要注意的地方写了一个注释。没有写代码。不过根据Notes里的时序图写代码应该不是什么难事
放大器 - LTC6912-1:
1、最高工作速度:SCK 10M
2、工作边沿:SCK的上升沿读取SDI,下降沿改变SDO。也就是说,数据都应在下降沿改变。
3、AMP-CS 低电平使能,上升沿使刚刚写入的数据产生效果。
4、AMP-SHDN = 1表示关掉AMP
ADC - LTC1407A-1:
1、最高工作速度:sample rate 1.5M
2、工作边沿:SCK上升沿改变SDO,所以应在下降沿读取其数据(与大多数SPI器件相反)
3、AC-CONV 上升沿表示开始取样,本次取样的数据要下一次才能读取。
4、建议提供34个SCK周期,其中会有6个高阻态。
Reference:
Xilinx Spartan 3E Starter Kit Reference Designs
LTC6912-1 Data Sheet
对要注意的地方写了一个注释。没有写代码。不过根据Notes里的时序图写代码应该不是什么难事
放大器 - LTC6912-1:
1、最高工作速度:SCK 10M
2、工作边沿:SCK的上升沿读取SDI,下降沿改变SDO。也就是说,数据都应在下降沿改变。
3、AMP-CS 低电平使能,上升沿使刚刚写入的数据产生效果。
4、AMP-SHDN = 1表示关掉AMP
ADC - LTC1407A-1:
1、最高工作速度:sample rate 1.5M
2、工作边沿:SCK上升沿改变SDO,所以应在下降沿读取其数据(与大多数SPI器件相反)
3、AC-CONV 上升沿表示开始取样,本次取样的数据要下一次才能读取。
4、建议提供34个SCK周期,其中会有6个高阻态。
Reference:
Xilinx Spartan 3E Starter Kit Reference Designs
LTC6912-1 Data Sheet







