【问题标题】:VHDL: How to assign value to an input?VHDL:如何为输入赋值?
【发布时间】:2014-10-24 07:25:45
【问题描述】:

我为多路复用器编写了一个“模板”。

我的目标是当 s="01" 或 s="11" 时 y=1。

现在,我应该如何链接 d0 和它所持有的值?

(在本例中,d0 应为 0,d1=1,d2=0,d3=1。)

library IEEE;
use IEEE.std_logic_1164.all;

entity mux4v1 is 

 port(
        d0  : in    std_logic;  -- 0
        d1  : in    std_logic;  -- 1
        d2  : in    std_logic;  -- 0
        d3  : in    std_logic;  -- 1
        s   : in    std_logic_vector(1 downto 0); -- my inputs controller via switches
        y   : out   std_logic
    );

end mux4v1;


architecture struct of mux4v1 is

begin
  with s select
  y <= d0 when "00",
       d1 when "01",
       d2 when "10",
       d3 when "11";
end struct;

【问题讨论】:

    标签: vhdl intel-fpga quartus


    【解决方案1】:

    我认为您要问的是如何将 '0' 和 '1' 输入到输入中...

    答案是:从外部,在使用多路复用器的设计中。

    对于仿真,您创建一个更高级别的设计并在其中实例化多路复用器。更高级别的设计可能类似于微处理器,但在这里我们只是想测试多路复用器,因此我们可以为它编写一个简单的测试平台。

    测试平台通常没有输入或输出,因此它构成了设计的顶层,您可以在模拟器中运行它。

    entity mux_tb is
    end mux_tb;
    

    在内部,它包含 DUT(被测设备)和您正在测试它的任何其他组件、将它们互连的信号、生成时钟和其他信号的过程,以及将设备输出与预期值进行比较的过程,以及报告任何错误。

    architecture simple of mux_tb is
    
    entity mux4v1 is 
    
    signal test_d0 : std_logic := 0;  
    signal test_d1 : std_logic := 1;
    signal test_d2 : std_logic := 0;
    signal test_d3 : std_logic := 0;
    
    signal sel   :   std_logic_vector(1 downto 0); 
    signal output :  std_logic;
    
    begin
    
    DUT : entity work.mux4v1
     port map(
            d0  => test_d0,
            d1  => test_d1,
            d2  => test_d2,
            d3  => test_d3
            s   => sel,
            y   => output
        );
    
    Stimulus : process
    begin
       sel <= "00";
       wait for 1 us;
       sel <= "01";
       -- and so on
    end process;
    
    end simple;
    

    对于综合,如果您只是想在您的 FPGA 中实现 MUX,您可以按原样综合。然后还有一个额外的步骤,您可以对其进行布局和布线以生成位文件以对 FPGA 进行编程。

    该步骤是将设备引脚分配给每个输入和输出信号。

    这些引脚分配是在您编写的约束文件中进行的,具体取决于您的 FPGA 的连接方式。例如,如果有一个您想要连接到 D0 的开关和一个您想要连接到 Y 的 LED,请从您的电路板原理图中找出该开关连接到哪个 FPGA 引脚,然后编写一个将该引脚连接到输入 D0 的约束。此约束文件(和一些示例)的语法应该在您的 FPGA 工具文档中。

    【讨论】:

      猜你喜欢
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      • 1970-01-01
      • 2019-02-20
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多