2014-12-10 3 views
2

aux가있는 clock_div_1hz_aux 매핑에 문제가 있습니다. 두 개의 포트 (aux와 clock_div_1hz_aux)를 매핑해야하는데 어떻게해야할지 모르겠다.VHDL의 버퍼 버퍼 포트

entity controler is 
Port (reset : in STD_LOGIC; 
clock : in STD_LOGIC; 
.................... 
); 
end controler; 

component numarator 
Port (
clk_num : in std_logic; 
reset_num : in std_logic; 
count : out std_logic_vector (3 downto 0) 
); 
end component; 

component div_num 
Port (
clock_div: in std_logic; 
reset_div : in std_logic; 
clock_div_1hz: buffer std_logic; 
clock_bla : out std_logic 
); 
end component; 

num1: div_num PORT MAP(
clock_div=>clock, 
clock_div_1hz => clk1hz, 
reset_div => reset 

); 

num2: numarator PORT MAP(
clk_num =>clk1hz, 
reset_num =>reset, 
count=>sensor_count 
); 

감사합니다 : 나는 image

enter image description here

에 설명 된대로 모든 다른 사람들은 여기에 내가 사용하는 코드는, 매핑됩니다!

+1

왜 'clock_div_1hz'가 버퍼가됩니까? 정상적인 산출물이 아닌가? – Paebbels

답변

0

구성 요소 (div_num)에서 버퍼를 사용하지 않으려면 버퍼를 출력 매개 변수로 선언하고 중간 신호를 (div_num) 아키텍처에 추가 할 수 있습니다. 디자인에서 중간 신호로 작업하고 출력 매개 변수에 동시 문으로 지정하십시오. 위의 변경 후

architecture ... of ... is 
begin 
    output_parameter <= intermediate_parameter; 
    process(...) 
    begin 
     -- use the intermediate_paramter instead of output_parameter 
    end process; 
end architecture; 

: 예 (div_num의 아키텍처)의 경우 당신이 3 개 요소 (div_num, 분자, CONTROLER)가 보인다.

출력 매개 변수 (clock_div_1hz_aux)를 (aux)에 연결하려면 인터페이스 신호 (clk1hz_aux)를 선언하고 구성 요소 (div_num 및 controler)에 추가하기 만하면됩니다. 예를 들어

:

signal clk1hz_aux : std_logic; 
component div_num 
    Port(
     clock_div   : in std_logic; 
     reset_div   : in std_logic; 
     clock_div_1hz  : out std_logic; 
     clock_div_1hz_aux : out std_logic 
    ); 
end component; 
component numarator 
    Port(
     clk_num : in std_logic; 
     reset_num : in std_logic; 
     count  : out std_logic_vector (3 downto 0) 
    ); 
end component; 
component controler 
    Port(
     clock : in std_logic; 
     count : in std_logic_vector (3 downto 0) 
     aux : in std_logic; 
     reset : in std_logic; 
     -- declare output parameters of controler block 
    ); 
end component; 
num1 : div_num PORT MAP(clock,reset,clk1hz,clk1hz_aux); 
num2 : numarator PORT MAP(clk1hz,reset,sensor_count); 
cntr : controler PORT MAP(clock,sensor_count,clk1hz_aux,reset,....); 
0

아미르, 맵핑의 유형을 사용하도록 확인되지 않을 것?

entity mapare is 

Port ( 

    reset : in STD_LOGIC; 
    clock : in STD_LOGIC; 
    aux : in std_logic; 
    ........... 
    ); 
end mapare; 


architecture Behavioral of mapare is 

    component numarator is 
     Port (
       clk_num : in std_logic; 
       reset_num : in std_logic; 
       count : out std_logic_vector (3 downto 0) 
       ); 
    end component;  

    component div_num is 
     Port (
       clock_div: in std_logic; 
       reset_div : in std_logic; 
       clock_div_1hz: out std_logic; 
       clock_div_1hz_aux: out std_logic 

      ); 
     end component; 

    component controler is 
     Port (
       clock: in std_logic; 
       reset: in std_logic; 
       aux : in std_logic; 
       ........... 
     ); 
     end component; 

signal sensor_count : STD_LOGIC_VECTOR (3 downto 0); 
signal clk1hz: std_logic := '0'; 
signal aux1 : std_logic ; 


begin 
num1: div_num PORT MAP(
      clock_div=>clock, 
      clock_div_1hz => clk1hz, 
      reset_div => reset, 
      clock_div_1hz_aux => aux1 

      ); 

num2: numarator PORT MAP(
      clk_num =>clk1hz, 
      reset_num =>reset, 
      count=>sensor_count 
      ); 


num3: controler PORT MAP (
     reset => reset, 
     clock => clock, 
     ........... 
     aux=> aux1 

     ); 

end Behavioral;