我有一个执行查找表的C程序。我通过控制台插入矩阵的大小,并将输出数据打印在文本文件中。然后我应该将存储在文本文件中的这些数据用到VHDL编译器中,以获得电路的设计。有人知道如何使用VHDL代码读取这些数据吗? 感谢
答案 0 :(得分:2)
如果您精通C语言,请在程序的开头添加一些printf语句,如下所示:
printf("Package ROM is\n");
printf(" constant Memory : array(0 to 255) of Natural;\n");
printf("end ROM;\n\n");
printf("Package Body ROM is\n");
printf(" constant Memory : array(0 to 255) of Natural := (\n");
您可能需要调整打印实际内容以生成有效的逗号分隔的VHDL文字(请记住,在最后一个值之后没有逗号!)
然后在程序结束时(关闭文件之前!)添加
printf(" );\n");
printf("end ROM;\n");
现在,您可以在VHDL中使用Rom.Memory
进行模拟或合成,而无需担心阅读文件。
答案 1 :(得分:0)
根据comment44752557判断,您可以使用数据来指定布线。然后,您的程序基本上是从模板中自动生成的。
VHDL没有这样的设施,它静态地指定了一个电路。因此,您需要使用一些自定义步骤和/或第三方工具从“模板”生成程序。 Brian Drummond's answer提供了一种可行的方法。
另一方面,如果您的电路包含一些在使用之前需要使用数据刻录的可编程元素,则使用输入信号实现刻录过程,其中一个输入信号来自文件。或者,元素可能允许以某种方式指定其内存的初始内容。