Verilog系列:仿真中遇到glbl.v
1.关于glbl.v
Xilinx FPGA片内资源上都有用于寄存器的置位和复位的专用电路单元,这个电路单元会在电路配置完毕后产生一个脉冲(自动产生的,且无需编写代码指定,这点与SoC设计时需要指定复位置位不同),所有的片上的寄存器和latch都会通过全局GSR(Global Set-Reset)线网收到这个脉冲从而使寄存器和latch置位或者复位,从而处于一个稳定的状态.如果在前仿真的时候没有指定GSR,那么前仿真的结果可能与后仿真的结果不一致,从而导致仿真结果可能不一致.可见, glbl.v常用来定义全局复位/置位、全局三态信号和DUT的连接,并且用来为设计提供有效地复位信号,对设计中使用到的全局信号进行初始化.在仿真起始的100ns中,glbl将自动产生全局复位/置位.
2.存在glbl.v文件的编译
此处以ModelSim仿真器为例,VCS和NC步骤类似,不再赘述.
a) 新建库work;
b) 编译Xilinx的仿真库(在软件的安装路径下可以找到)到work中;
c) 编译glbl.v到新建的work中;
d) 编译设计的所有源文件以及Testbench文件到work中;
具体操作如下:
a) vlib work
b) vlog $env(XILINX)/*.v
c) vlog glbl.v
d) vlog source.v tb.v
e) vsim -t ps -L work work.tb work.glbl
【参考文献】
-
《Understanding the Global Signals for Simulation》
-
笔者在博客园写的一篇博客“https://www.cnblogs.com/nanoty/archive/2012/11/06/2757830.html”