请教如何动态载入外部文件,而不用readmem
时间:10-02
整理:3721RD
点击:
使用readmem系统任务在编译时就需要定义好相应文件,如果我想实现不需要重新编译,在运行的过程中动态载入相应文件,请问怎么实现?
碰到的问题:
目前仿真时只能在编译的时候给PM载入程序,但是,如果有多个验证方案,每个方案只是程序不同而已,我需要每次重新编译,需要有一种方式,不用重新编译,最好在仿真时动态指定载入的文件. systemverilog也没有找到相应的实现方式.
碰到的问题:
目前仿真时只能在编译的时候给PM载入程序,但是,如果有多个验证方案,每个方案只是程序不同而已,我需要每次重新编译,需要有一种方式,不用重新编译,最好在仿真时动态指定载入的文件. systemverilog也没有找到相应的实现方式.
请教高手,在线等啊!
你说的是rtl么?
verilog里有伪指令“$fopen,$fscanf,$fclose”,如果想动态指定文件名称,估计要用pearl之类的定义参数传递给tb了,如果你的tb也是靠tcl生成的话。
是的。可是这样的话,参数传递过去以后要重新编译。我希望能够不需要重新编译rtl代码就可以实现。感觉如果嵌入C的话好像可行,就是不知道有没有更好的办法。
把动态文件在使用时copy成另外一个文件名,这个文件名就是tb里readmem所用的文件名啊,不用重新编译,只要不停的copy覆盖就行了
Good idea!这是一个解决办法,我也想到过,但是感觉有点"土"(没有贬义,请勿介意!).另外,如果我的pattern很多,需要多个进程同时跑的时候这种方法就会有问题了.继续等待高人指点!谢谢!
继续等..........................
那你就一个目录跑一个case好了,5楼的是正解
