一、头文件实现仿真和综合切换
二、修改do文件实现仿真和综合独立工作
三、往期文章链接
一、头文件实现仿真和综合切换
仿真和综合之间,如何无缝切换,最好不需要修改代码来实现?
笔者以前采用的是头文件和verilog中实现宏定义,来切换仿真和综合。刚开始用起来也挺舒服的,只需要在头文件中define,同时还需要在verilog中进行头文件引用,否则verilog中的宏定义并不会生效。
头文件中进行相关宏定义:
对应verilog引用头文件,并实现宏定义切换仿真和综合代码:
宏定义实现仿真代码进行仿真数据导入:
二、修改do文件实现仿真和综合独立工作
上述头文件进行综合时候,需要注释掉头文件中的define。但是最近仿真40G ETH MAC PCS+PMA的IP时候,发现此种方式并没有让IP核底层的仿真define实现,底层代码未引用头文件。
通过SIM_SPEED_UP,提高了仿真效率。但是,没有切换成功,导致仿真时间很长。修改do文件来实现仿真和综合代码无缝切换。通常仿真do文件位置,在工程的路径下.sim\sim_1\behav\modelsim中。仿真时候,在complie_do文件中对应的v文件添加宏定义有效字符,具体采用Modelsim提供的三种方式:
笔者习惯使用第二种方式,通过“+define+SIM +define+SIM_SPEED_UP”来实现Modelsim平台下仿真代码生效。同时,在vivado平台下编译时候,使用综合代码。由此在vivado+modelsim联合仿真中,修改do文件实现仿真代码和综合代码独立工作。
三、往期文章链接
UltraScale+FPGA中Serdes的多lane对齐异常解决方案
vivado时序报告中slack是如何计算的?如何优化时序?
UltraScale+FPGA中GTY的TX路径时钟详解——以40G的ETH MAC IP为例
vivado时序优化——约束异步时钟组set_clock_groups
基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)
跟小灰灰一起学vivado:7系列FPGA的MultiBoot和Fallback功能更新固件
跟小灰灰一起学vivado:7系列FPGA配置模式之配置数据文件格式和配置时序步骤
跟小灰灰一起学vivado:7系列FPGA配置模式之主SPI四路(x4)
跟小灰灰一起学vivado:PCIe XDMA实现远程更新FPGA固件
Xilinx UltraScale+DDR4项目开发(一)——DDR4 MIG的ip接口信号
Xilinx UltraScale+DDR4项目开发(二)——DDR4 MIG的时钟网络
Xilinx UltraScale+DDR4项目开发(三)——DDR4器件选型与MIG IP的配置
低速接口项目之串口Uart开发(二)——FIFO实现串口数据的收发回环测试
低速接口项目之串口Uart开发(三)——串口发送模块和接收模块
低速接口项目之串口Uart开发(四)——UART串口实现FPGA内部AXILITE寄存器的读写控制
低速接口项目之串口Uart开发(五)——QT实现Uart串口寄存器读写工具
低速接口项目之串口Uart开发(六)——zynq系列ps-pl端uart实现共享Axilite内部寄存器的读写
低速接口项目之串口Uart开发(七)——如何在FPGA项目中实现自适应波特率串口功能
低速接口项目之串口Uart开发(八)——如何通过ps侧的串口实现zynq的在线升级(一)