Hi
I need some more help --:
Based on original counter (VHDL 1) and your template (VHDL 2, Thankyou

.....VIO, ILA, ICON are generated.
It is not clear for me to how to make VIO work --:
My goal is
- to drive "internal reset input signal" to <'1' ---> '0'> (or '0' from
beginning) using VIO and
- to see the proper waveform in 'Analyzer'.
It seems that it is problematic for VIO to add virtual input to
internal reset signal.
Thankyou again for the help. Regards
BTW, Mapping process does not create any warning, while synthesis
process generates following warnings.
================================================== =======================
* Low Level Synthesis
*
================================================== =======================
Launcher: "ila.ngo" is up to date.
Launcher: "vio.ngo" is up to date.
Launcher: "icon.ngo" is up to date.
WARNING:Xst:1474 - Core <ila> was not loaded for <i_ila> as one or more
ports did not line up with component declaration. Declared input port
<control<35>> was not found in the core. Please make sure that
component declaration ports are consistent with the core ports
including direction and bus-naming conventions.
WARNING:Xst:1474 - Core <vio> was not loaded for <i_vio> as one or more
ports did not line up with component declaration. Declared input port
<control<35>> was not found in the core. Please make sure that
component declaration ports are consistent with the core ports
including direction and bus-naming conventions.
WARNING:Xst:1474 - Core <icon> was not loaded for <i_icon> as one or
more ports did not line up with component declaration. Declared output
port <control0<3>> was not found in the core. Please make sure that
component declaration ports are consistent with the core ports
including direction and bus-naming conventions.
WARNING:Xst:1291 - FF/Latch <counter_35> is unconnected in block <top>.
WARNING:Xst:1291 - FF/Latch <counter_32> is unconnected in block <top>.
WARNING:Xst:1291 - FF/Latch <counter_33> is unconnected in block <top>.
WARNING:Xst:1291 - FF/Latch <counter_34> is unconnected in block <top>.
*********** VHDL 1
************************************************** *********
---------------------------------------------------------------------------------------------
-- Design under "simulation"
-- Original 4 bit (internally 36bit) counter
--------------------------------------------------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity top is
port
(
clk : in std_logic;
cnt : out std_logic_vector(3 downto 0)
);
end top;
architecture behave of top is
signal counter : std_logic_vector(35 downto 0):= (others => '0');
signal rst_tmp: std_logic:='0'; -- internal reset signal
begin
process(rst_tmp,clk)
begin
if rst_tmp='1' then
counter <= (others => '0');
elsif ( clk'event and clk = '1' ) then
counter <= counter + 1;
end if;
end process;
cnt <= counter(31 downto 28);
end behave;
-------------------------------------------------------------------------------
******* VHDL 2 ************************************************
----------------------------------------------------------------------
-- Design under Verification
-- 4 bit counter (internally 36 bit counter)
-- With internal "reset" input signal
-- VIO, ICON, ILA : Core generated
--------------------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity top is
port
(
clk : in std_logic;
cnt : out std_logic_vector(3 downto 0)
);
end top;
architecture behave of top is
signal counter : std_logic_vector(35 downto 0):= (others => '0');
signal rst_tmp : std_logic:='0';
--- ICON declaration ------------------------------------
signal control0 : std_logic_vector(35 downto 0);
signal control1 : std_logic_vector(35 downto 0);
component icon
port
( control0 : out std_logic_vector(35 downto 0);
control1 : out std_logic_vector(35 downto 0) );
end component;
--------------------------------------------------------
--- ILA declaration ------------------------------------
signal data : std_logic_vector(3 downto 0);
signal trig0 : std_logic_vector(3 downto 0);
component ila
port
( control : in std_logic_vector(35 downto 0);
clk : in std_logic;
data : in std_logic_vector(3 downto 0);
trig0 : in std_logic_vector(3 downto 0) );
end component;
--------------------------------------------------------
---- VIO declarations ----------------------------------
signal sync_in : std_logic_vector(3 downto 0);
signal async_out : std_logic_vector(0 downto 0);
component vio
port
( control : in std_logic_vector(35 downto 0);
clk : in std_logic;
async_out : out std_logic_vector(0 downto 0);
sync_in : in std_logic_vector(3 downto 0) );
end component;
---------------------------------------------------------
begin
process(rst_tmp,clk)
begin
if rst_tmp='1' then
counter <= (others => '0');
elsif ( clk'event and clk = '1' ) then
counter <= counter + 1;
end if;
end process;
cnt <= counter(31 downto 28);
---- ICON instantiation -------------
i_icon : icon
port map
( control0 => control0,
control1 => control1 );
--------------------------------------
--- ILA instantiation ------------
trig0(0) <= counter(0);
trig0(1) <= counter(1);
trig0(2) <= counter(2);
trig0(3) <= counter(3);
data(0) <= counter(0);
data(1) <= counter(1);
data(2) <= counter(2);
data(3) <= counter(3);
i_ila : ila
port map
( control => control0,
clk => clk,
data => data,
trig0 => trig0 );
-----------------------------------
---- VIO intantiation -------------
rst_tmp <= async_out(0); -- this part is wierd
sync_in(0) <= counter(0);
sync_in(1) <= counter(1);
sync_in(2) <= counter(2);
sync_in(3) <= counter(3);
i_vio : vio
port map
( control => control1,
clk => clk,
async_out => async_out,
sync_in => sync_in );
-----------------------------------
end behave;
************************************************** **************