我知道您可以在 Verilog 测试台中声明一个字符串,如下所示:
reg [8*14:1] string_value;
initial
string_value = "Hello, World!";
然后我可以用这个字符串做一些事情,比如使用
$display
在测试台上显示它。当我将模块闪存到我的 FPGA 时,我没有成功地在模块中做同样的事情:
reg [8*14:1] string_value;
always @(reset)
begin
string_value = "Hello, World!";
// Do stuff with string value
即使分配单个值也不起作用:
reg [8:1] char_value;
always @(reset)
begin
char_value = "A";
if (char_value == 8'h41)
// Do stuff!
我想将 8 位总线上的单个字符转移到 LCD 屏幕上进行显示。
如何在 Verilog 中处理字符串?
最佳答案
您可以将字符串分配给寄存器类型。任何说其他话的人都是错的。您可能希望使您的寄存器基于 0' 以使其正常工作。我已经在真正的 FPGA 中做到了这一点,并且可以正常工作。
关于string - 在 Verilog 中将 ASCII 字符分配给连线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9028084/