VHDL st_logic_vector

VHDL st_logic_vector

信号测试 : std_logic_vector(135 下降到 0) := x"FC255346D1B5ED025D57B49D1B44D584A1";

这个信号对应控制台上的'Hello World'。它不是十六进制的,显然也不是二进制的。它是什么 ?我正在尝试写一些不同的东西。

好吧,它以 X" ..." 开头,所以它显然是十六进制的。

这不是问题,也不是它代表什么?这显然是 "Hello World",但它是如何表示的。

找出它和控制台之间的内容。 如果只是一个移位寄存器,找出哪一端先出来。写出前 16 位左右——或绘制波形——记住控制台的接口是 UART,它需要起始位、7 位或 8 位数据,可能还有奇偶校验位、停止位。

检查这些以找出 Ascii "H" 被掩埋的位置,并从中对规范的其余部分进行逆向工程。

然后您就会知道如何替换另一条消息。

如果您用 std_logic_vector 中的这些其他格式化位填充实际数据,您可以用一个简单的移位寄存器替换 UART 的传输部分 - 这是一个巧妙的 hack,将复杂性从实际硬件和其他东西 - Python 脚本或简单的 VHDL profram - 获取字符串并将其转换为这种格式 - 这就是我的猜测这里发生了什么。

您可以环顾项目的其余部分,看看是否可以找到 python 脚本或程序...

FC255346D1B5ED025D57B49D1B44D584A1 is in binary:
111111000010010101010011010001101101000110110...
111111: UART is in high level (no transmission)
      0: start bit
       00010010: This is 'H' in ASCII binary (LSB first)
               1: End of character
                010100110: This is 'e' in ASCII binary (LSB first)
etc...