VHDL - что может быть не так в этом проекте? - PullRequest
0 голосов
/ 22 января 2020

Здравствуйте, я недавно начал программировать на VHDL. Я пытаюсь сделать сложный проект, который читает несколько байт и передает по интерфейсу I2 C. Этот проект состоит из 3 VHD-файлов. Синтез и реализация успешно выполнены без ошибок или предупреждения. Dut не использует LUT или логические элементы

введите описание изображения здесь

Я думаю, что я что-то не так делаю в main.vhd

main. VHD:

library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_signed.all;
use ieee.numeric_std.all;

entity main is
    Port (RealData_in   : in STD_LOGIC_VECTOR(7 downto 0);
          Read_in   : in STD_LOGIC;
          Start_in  : in STD_LOGIC;
          SDA : inout STD_LOGIC;
          SCL : out STD_LOGIC);
end main;

architecture Behavioral of main is
component I2C_Master
    port(clk        : in STD_LOGIC;
         sel        : in STD_LOGIC;
         rst        : in STD_LOGIC;
         start      : in STD_LOGIC;
         stop       : in STD_LOGIC; 
         RW         : in STD_LOGIC;
         SDA        : inout STD_LOGIC;
         SCL        : out STD_LOGIC;
         Data_in    : inout STD_LOGIC_VECTOR (7 downto 0);
         Slave_add  : in STD_LOGIC_VECTOR (6 downto 0);
         Data_W_cplt: out STD_LOGIC;
         Data_R_cplt: out STD_LOGIC);
end component;
for all: I2C_Master use entity work.I2C_Master(behav);

component User_logic
    port(RealData_in2: in STD_LOGIC_VECTOR(7 downto 0);
         Read_in2    : in STD_LOGIC;
         Start_in2   : in STD_LOGIC;
         clk2        : out STD_LOGIC;
         sel2        : out STD_LOGIC;
         rst2        : out STD_LOGIC;
         start2      : out STD_LOGIC;
         stop2       : out STD_LOGIC; 
         RW2         : out STD_LOGIC;
         Data_inout2 : inout STD_LOGIC_VECTOR (7 downto 0);
         Slave_add2  : out STD_LOGIC_VECTOR (6 downto 0);
         Data_W_cplt2: in STD_LOGIC;
         Data_R_cplt2: in STD_LOGIC);
end component;
for all: User_logic use entity work.User_logic(Behavioral);

signal clk_temp : STD_LOGIC;
signal rst_temp : STD_LOGIC;
signal sel_temp : STD_LOGIC;
signal start_temp : STD_LOGIC;
signal stop_temp : STD_LOGIC;
signal RW_temp : STD_LOGIC;
signal Data_R_cplt_temp : STD_LOGIC;
signal Data_W_cplt_temp : STD_LOGIC;
signal Data_in_temp : STD_LOGIC_VECTOR (7 downto 0);
signal Slave_add_temp : STD_LOGIC_VECTOR (6 downto 0);


begin
    U1: entity work.User_logic(Behavioral)
    port map (RealData_in2 => RealData_in,
              Read_in2     => Read_in,
              Start_in2    => Start_in,
              clk2         => clk_temp,
              rst2         => rst_temp,
              sel2         => sel_temp,
              start2       => start_temp,
              stop2        => stop_temp,
              RW2          => RW_temp,
              Data_inout2  => Data_in_temp,
              Data_W_cplt2 => Data_W_cplt_temp,
              Slave_add2   => Slave_add_temp,
              Data_R_cplt2 => Data_R_cplt_temp);

    U2: entity work.I2C_Master(behav)
    port map (clk         => clk_temp,
              rst         => rst_temp,
              sel         => sel_temp,
              start       => start_temp,
              stop        => stop_temp,
              RW          => RW_temp,
              SDA         => SDA,
              SCL         => SCL,
              Data_in     => Data_in_temp,
              Data_W_cplt => Data_W_cplt_temp,
              Slave_add   => Slave_add_temp,
              Data_R_cplt => Data_R_cplt_temp);
end Behavioral;

Настройки файла: введите описание изображения здесь

пожалуйста, помогите мне, потому что у меня нет никаких идей.

...