【发布时间】:2010-11-09 06:50:56
【问题描述】:
我正在寻找一个 Verilog 函数来将我的 ASCII 输入字符串转换为十六进制输出。我不确定我是否可以在 C 中做到这一点并与 Verilog 一起使用。到目前为止,我能够使用以下命令将输入的 ASCII 字符串打印为十六进制值:
printf("Hexadecimal Output for <CALL-ID>: ");
for(c = 0; c < strlen(callid); c++)
{
printf("TO: %x ", callid[c]);
}
有没有办法将输出保存在文本/csv 文件中,并使其可供我的 verilog 代码 sn-p 访问?
或者请让我知道 Verilog 本身是否有更简单的方法?
【问题讨论】:
-
完全不相关,但您应该避免在每次循环迭代时调用
strlen()。strlen()不是 O(1) 操作。你应该改为size_t max = strlen(callid); for(c = 0; c < max; c++) -
@Chris:您的建议有帮助,但仍然很愚蠢。而是将循环条件从
c<strlen(callid)更改为简单的callid[c]并完全避免调用strlen。 -
您是否尝试使用 ASCII 字符驱动 verilog 总线?