【问题标题】:VHDL: signals and ports on which side of the "arrow" =>VHDL:“箭头”的哪一侧的信号和端口=>
【发布时间】:2012-04-18 09:40:50
【问题描述】:

非常基本的问题:

我如何知道端口/信号/值应该放在箭头的哪一侧? 我注意到通过切换 port_a => xx <= port_a 似乎非常相等,我遇到了一个错误。 另外,x => port_a 不工作

我什至不知道箭头应该指向哪个方向。

非常感谢您的回答!

【问题讨论】:

    标签: vhdl fpga xilinx


    【解决方案1】:

    <= 是一个赋值 - 特别是一个信号赋值,驱动一个具有来自其他地方的值的信号。对于物理类比,右侧的事物将值驱动到左侧。

    => 是一个从引脚到信号的端口映射。这不是一项任务 - 物理类比可能是将引脚焊接到电线上。

    您只能对实例进行“焊接”,因此=> 映射只发生在port map 内。在那里,“大头针”总是在左边(因为这是语言规则所说的),这就是为什么你不能在 port map 中使用 x <= port_a

    【讨论】:

      【解决方案2】:

      使用<= 从右到左分配信号。 右侧必须是来自实体的输入信号或在进程中声明的信号。 左侧可以是来自实体的输出信号(或输入/缓冲区)、进程中声明的信号或进程中声明的变量。

      除了其他答案中提到的端口映射之外,=> 箭头还用于完全不同的事情 - 构造向量。 例如,如果 v 是一个 4 位向量,那么 v <= (others => '0') 会将“0000”分配给 v。括号内的 ``=>` 是在向量内不同位置分配不同值的快捷方式。

      【讨论】:

      • 非常感谢您的快速解答!
      【解决方案3】:

      if => 用于端口列表,那么这怎么可能?请注意,clk_40Mhz_i 是一个引脚。

      COMPONENT clk_wiz_v3_5 is 
      

      端口

      (-- 端口时钟

      CLK_IN1:在标准逻辑中;

      -- 时钟输出端口

      CLK_OUT1 : 输出标准逻辑;

      -- 状态和控制信号

      重置:在 std_logic 中;

      锁定:出标准逻辑

      );

      结束组件;

      xclk_wiz_v3_5:clk_wiz_v3_5

      港口地图(

       CLK_IN1          => clk_40Mhz_i,
      
       -- Clock out ports
      
       CLK_OUT1         => clk_40Mhz,
      
       -- Status and control signals
      
       RESET            => pic_fpga_reset,
      
       LOCKED           => clk_locked   
      

      );

      pic_fpga_reset

      重置

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-01
        • 2020-05-22
        • 1970-01-01
        • 2020-02-16
        • 2013-12-01
        • 2019-08-06
        • 1970-01-01
        相关资源
        最近更新 更多