标签 FPGA 下的文章

修改mem文件的地址偏移

在通过mmi和mem文件修改FPGA bit文件中的ROM内容时候,我们常常需要修改mem文件的地址偏移,每次手动修改文件比较麻烦,并且容易出错,所以这里就搞了一个脚本去自动修改地址偏移,虽然可以通过sed基本一条命令就可以搞定,还是写了一个Python脚本来实现。另外,这里发现mem文件格式和gcc产生的hex基本通用,所以这个脚本也可以直接修改hex文件。不过IntelHex格式的就算了...

继续阅读 »

Vivado通过mmi文件更新bit文件

在做MCU的FPGA仿真平台的时候,如果需要验证ROM的功能,那么我们就会碰到直接更新ROM程序的问题,我们知道FPGA中ROM一般是通过block RAM实现的,因为芯片设计的时候ROM是只读的,所以在下载ROM的时候就不能像RAM程序那样通过下载器下载。所以这里就要用到一种新的ROM程序的更新方式。生成RAM报表我们知道FPGA中的RAM都是有固定的cell的,我们在更新ROM(实际对应...

继续阅读 »

Tcl自定义排序的方法

在之前的文章中我们介绍了一种PR之后直接获取ROM mmi信息的一个脚本,mmi脚本可以用于修改FPGA生成Bit的ROM初始化数据,这种技术在MCU的验证中非常重要,因为往往在测试MCU ROM代码的时候,我们就需要这种重新Load程序的方式。相比于动则十几个小时生成Bit的时间,我们直接修改bitfile则会快很多。虽然之前脚本中已经有生成MMI的功能,可以直接找出芯片ROM在FPGA内...

继续阅读 »

Vivado批处理模式的一些使用总结

作为一个资深的折腾党和终端党,运行Vivado的时候我还是偏爱使用批处理模式,这样的好处就是可以直接一条命令走天下,直接搞一条命令,回头等结果就好了,这个才是运行程序的正常方式。就是讨厌点来点去的GUI,没得办法,就是这么偏执。本文所有命令在命令手册中都可以找到,手册在这.如何进入批处理模式首先,为了运行批处理,我们要先了解如何进入批处理模式,这个是通过Vivado的命令加参数实现的,默认V...

继续阅读 »

Vivado FPGA 后仿流程

FPGA的设计离不开仿真,我们最常用的是RTL的行为仿真,而对于FPGA设计而言,如果遇到了比较难以调试的Bug的时候,我们还需要进行后仿。所谓的后仿,其实就是布局布线之后的仿真,这个时候仿真会带有各种延时信息,也是最接近器件行为的仿真。虽说是仿真,可以看到各种信号,但是调试起来相当于前仿还是有很大区别的,这里就简单介绍一下后仿的基本流程。仿真准备后仿,其实就是一个带有各种时延信息的仿真,基...

继续阅读 »