在完成Verilog代码后往往需要先进行功能仿真,而最直观观察对错的方案便是将FPGA生成的数据与MATLAB生成的数据进行对比,若定点合理且代码正确,误差往往会在预期范围内,譬如,数据定点为(1,16,10),那么转换后的小数后三位应该是与MATLAB一致的(1/(2^10)=0.0009)。关于定点化后续会谈,下文会写一些FPGA读取,写入数据的方式。
- FPGA生成数据的写入与读取
此处的写入或者读取往往是在tb文件中的,主程序中不推荐使用。
读取:其中readmemb表示读取的是二进制文件,可以将b修改成h,读取十六进制文件。
data_num是数据个数(深度),[15:0]表示读取的数据的位宽。
reg [15:0] Data_in [data_num-1:0];
initial begin
$readmemb ("PATH",Data_in);
end