【问题标题】:Representing 2 binary digits in hex for vhdl以十六进制表示 vhdl 的 2 个二进制数字
【发布时间】:2018-03-20 15:53:57
【问题描述】:

在 VHDL 中,如果 X'1 => "0001",X'3 => "0011"。即,1 个十六进制数字代表 4 个二进制值,鉴于我在内存中只有一个特定的位范围,我如何仅表示 2 个十六进制二进制值。在这种情况下2。例如,内存中剩余的空间只能占用2位。我知道我仍然可以使用初始表示并屏蔽两个 msb 或 lsb,但还有其他方法吗?

【问题讨论】:

  • 当然。范围只是有限的。十六进制只是一种表示格式(二进制也是如此)。
  • 你的问题不清楚。展示一个在应用程序中屏蔽两个位的工作示例,它将显示您对“位”所做的工作。否则,请考虑使用调整大小(一个函数,可能是自定义的)或切片(需要命名数组对象或返回数组值作为前缀的函数调用)的表达式。还有一个位字符串文字的长度说明符,可以扩展或限制它的长度,请参阅 IEEE Std 1076-2008 8. Names,8.1 用于切片前缀,15.8 位字符串文字。

标签: binary hex bit-manipulation vhdl hardware-programming


【解决方案1】:

如果您使用的是 VHDL-2008,则可以这样做:

2X"2" = "0010"

来自网络的更多示例:

无符号表示法(默认):

7UX"F"  = "0001111" -- extend
7UX"0F" = "0001111" -- reduce

签过名:

7SX"F"  = "1111111" -- extend
7SX"CF" = "1001111" -- reduce

【讨论】:

    猜你喜欢
    • 2014-03-11
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 2016-07-24
    • 2014-12-20
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多