Hi bertulus ,
i did as you said and define the clk_in and pll_25M_out, pll_100M_out as std_logic .
i publish the full new .vhd file that i create in order to duplicate the PRBS box . i also publish the design scheme at word file .
---------------------------------------------------------------------------------------
-- Top Design
library ieee;
use ieee.std_logic_1164.all;
entity TopDesign is
port(
clk_in : in std_logic;
ser_in1 : in std_logic;
lock_out : out std_logic;
ser_out : out std_logic
);
end entity TopDesign;
architecture Design of TopDesign is
signal pll_25M_out : std_logic; -- 25M output from PLL
signal pll_100M_out : std_logic; -- 100M output from PLL
signal PLL_locked : std_logic; -- when PLL_Locked = '0' it send resetN ='0' to all components
signal ResetN_25M : std_logic;
signal ResetN_100M : std_logic;
--signal debug_clk_in_test : std_logic;
begin
--The PLL instantiation is :
Top_level_pll: entity work.pll_125M (SYN)
port map(
inclk0 => clk_in , --in std_logic
c0 => pll_25M_out , --out std_logic
c1 => pll_100M_out, --out std_logic
locked => PLL_locked --out std_logic
);
Top_level_Meta_Reset_25M: entity work.Meta_Reset (behave)
port map(
locked => PLL_locked, --in std_logic
clk => pll_25M_out, --in std_logic
Din => '1' , --in std_logic
rst_n=> ResetN_25M --out std_logic
);
Top_level_Meta_Reset_100M: entity work.Meta_Reset (behave)
port map(
locked => PLL_locked, --in std_logic
clk => pll_100M_out, --in std_logic
Din => '1' , --in std_logic
rst_n=> ResetN_100M --out std_logic
);
--The duplicate PRBS box instantiation is :
Top_level_Top: for i in 1 to 2 generate
duplicate:entity work.top(Design)
port map(
clk_in1=>pll_25M_out, --in std_logic
clk_in2=>pll_100M_out, --in std_logic
ResetN_25M => ResetN_25M, --in std_logic
ResetN_100M => ResetN_100M, --in std_logic
ser_in1 => ser_in1, --in std_logic
ser_out => ser_out, --out std_logic
lock_out => lock_out --out std_logic
);
end generate ;
end architecture Design;
------------------------------------------------------------------------------------------
After the simulation at Model Sim the signals and prots of top entity duplicate ( Top_level_Top(1) , Top_level_Top(2) ) .
i tried to use the duplicated ports at Quartus Pin Planner, F.E : ser_in1(2),ser_out(2) and the Quartus didn't find them .
i just want to be clear , as mentioned at the scheme , the topddesign have n ser_in1 input ports , n ser_out output ports and n lock_out outputs ports . don't i need to define the inputs , outputs as std_logic _vector in order that Quartus will know that its more that one pin ?
in this situation does the input for every entity (i.e Resets, clocks ...) should be std_logic _vector as well ?
Thanks .