一、问题:

笔者的毕业设计是基于FPGA的数字水平仪设计

在编辑Verilog代码文件的时候需要一个一千行的case语句,目的是为了做一个函数查找表,根据自变量转换之后的地址码来查找该自变量对应的函数的值。需要存储的值有一千个。

需要的语句类似于这种

18233197612100e310ef5de147cbf6e8.png

二、解决方法

1、因为函数数据是根据MATLAB算出来的,所以思路是在MATLAB是编辑一个文本文档,采用一个for循环来输出不同的地址值很函数值,以及相同的字符:

2、将命令窗口输出的结果保存再记事本中。

地址—函数映射图如下

72f5e277da55ed40ca8f4d329332369d.png

然后开始新建一个MATLAB文本文件:采用for循环的方式来书写语句,

for i=1:1006

A=[ '10''d' num2str(i) ':' 'angle=8''d' num2str(c(i)) ';' ];

disp(A)

end

这里需要注意的点是:

1、在MATLAB中有一些特殊字符的输出,其中单撇号“ ’ ”,的对应的字符为“ ‘’ ”,也就是说,当需要输出单撇号的字符的时候,我们需要用两个单撇号来代替“ ‘’ ”

2、MATLAB中的for循环需要加上end 来结束。

3、如果需要输出不带‘ [ ] ’的数据,可以将所有的结果放进一个矩阵变量,在笔者这里就是A。

三、结果

最后截取一部分循环出来的代码:

10'd824:angle=8'd33;

10'd825:angle=8'd33;

10'd826:angle=8'd33;

10'd827:angle=8'd33;

10'd828:angle=8'd32;

10'd829:angle=8'd32;

10'd830:angle=8'd32;

10'd831:angle=8'd32;

10'd832:angle=8'd32;

10'd833:angle=8'd32;

10'd834:angle=8'd32;

10'd835:angle=8'd32;

10'd836:angle=8'd32;

10'd837:angle=8'd31;

10'd838:angle=8'd31;

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐