【问题标题】:VHDL Code explanation needed (std_logic_vector)需要 VHDL 代码解释 (std_logic_vector)
【发布时间】:2020-04-04 14:46:40
【问题描述】:

1) std_logic_vector(data_width - 1 downto 0)

在这段代码中,我不明白(-1 到 0)。我知道这告诉我们它是 8 位的。但不明白怎么做?例如,(7 donwto 0) 是不言自明的,例如。 0,1,2,3,4,5,6,7。

2) A_reg(data_width - 1 downto 1) <= A_reg(data_width - 2 downto 0);

我知道我们正在左移。但是谁能解释一下如何?我想知道位的位置是如何变化或移动的。

【问题讨论】:

    标签: vhdl fpga


    【解决方案1】:

    你应该仔细阅读。它确实说(-1下降到0)。它说(data_width - 1 downto 0)。

    因此,如果 data_width 为 8,您将得到 (8-1 downto 0) 这是您的 (7 downto 0)


    现在下一个:A_reg(data_width - 1 downto 1) <= A_reg(data_width - 2 downto 0);

    再次使用 8 的 data_width 我们得到:A_reg(7 downto 1) <= A_reg(6 downto 0);

    因此位 6,5,4,...0 被分别传输到位 7,6,5,..1。每个位向左移动一个位置,但位 0 保持不变:

     A[7][6][5][4][3][2][1][0]
         /  /  /  /  /  /  /|
        /  /  /  /  /  /  / | 
       v  v  v  v  v  v  v  v
     A[7][6][5][4][3][2][1][0]
    

    【讨论】:

    • 非常感谢。你的解释很好很清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 2014-08-20
    • 2015-09-15
    • 1970-01-01
    相关资源
    最近更新 更多