--============================================================================-- -- Design units : BoardDesign(Configured) (Architecture) -- -- File name : Configured.vhd -- -- Purpose : The architecture contains information on connectivity, -- and timing related information and selection of -- entity/architecture is made here. -- -- Note : -- -- Limitations : None known -- -- Errors : None known -- -- Library : BoardDesign_Lib -- -- Dependencies : IEEE.Std_Logic_1164, -- BitMod_Lib. -- -- Author : Sandi Habinc -- ESTEC Microelectronics and Technology Section (WSM) -- P. O. Box 299 -- 2200 AG Noordwijk -- The Netherlands -- -- Copyright : European Space Agency (ESA) 1995. No part may be reproduced -- in any form without the prior written permission of ESA. -- -- Simulator : Synopsys v. 3.2b, on Sun SPARCstation 10, SunOS 4.1.3 -------------------------------------------------------------------------------- -- Revision list -- Version Author Date Changes -- -- 0.1 SH 1 July 95 New model -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Naming convention: Active low signals are indicated by _N. -------------------------------------------------------------------------------- library BitMod_Lib; library IEEE; use IEEE.Vital_Timing.all; -- The timing package contents are not made visible since this would potentially -- conflict with any contenst of timing packages of other models. (This is not -- illustrated in this example). architecture Configured of BoardDesign is ----------------------------------------------------------------------------- -- Component declarations. ----------------------------------------------------------------------------- -- The generic declaration needs only to include those generics which will -- be associated in the architecture. The rest will take default values -- as defined for the entity referenced in the _for all_ statement. -- -- The timing generic delcaration need to have the default value -- as defined for the entity, since one instantiation will have -- unmodified timing (IC2). The default value is fetched from the -- timing package, with a full named selection not to conflict with -- any other paramters of other models. -- component BitMod generic( SimCondition: SimConditionType := WorstCase; InstancePath: String := "BitMod:"; TimingChecksOn: Boolean := False; tpd_Clk_MData: TimeArray01 := BitMod_Lib.BitMod_Timing.tpd_Clk_MData); port( Test: in Std_Logic_Vector(0 to 1); -- Test mode Clk: in Std_Logic; -- Master Clock Reset_N: in Std_Logic; -- Master Reset A: in Std_Logic_Vector(0 to 1); -- Address bus CS_N: in Std_Logic; -- Chip select, act. low RW_N: in Std_Logic; -- Read/write, read = 1 D: inout Std_Logic_Vector(0 to 7); -- Bidir. data bus SClk: in Std_ULogic; -- Serial Clock SData: in Std_ULogic; -- Serial input Data MData: out Std_Logic); -- Modulated output Data end component; ----------------------------------------------------------------------------- -- Local signal declarations. ----------------------------------------------------------------------------- signal Data0: Std_ULogic; -- Serial Data signal Data1: Std_ULogic; -- Serial Data ----------------------------------------------------------------------------- -- Configuration of components. ----------------------------------------------------------------------------- -- All instances of the component BitMod are tied to the entity -- configured by BitMod_Configuration in this configuration -- specification. for all: BitMod use configuration BitMod_Lib.BitMod_Configuration; begin --========================== Architecture ==============================-- ----------------------------------------------------------------------------- -- Instantiation of components. ----------------------------------------------------------------------------- IC0: BitMod -- Annotated timing generic map( SimCondition => SimCondition, InstancePath => InstancePath&"IC0:", TimingChecksOn => TimingChecksOn, tpd_Clk_MData => ((BitMod_Lib.BitMod_Timing.tpd_Clk_MData(WorstCase)(tr01) + 5 ns, BitMod_Lib.BitMod_Timing.tpd_Clk_MData(WorstCase)(tr10)+ 5 ns), (BitMod_Lib.BitMod_Timing.tpd_Clk_MData(TypCase)(tr01)+ 5 ns, BitMod_Lib.BitMod_Timing.tpd_Clk_MData(TypCase)(tr10)+ 5 ns), (BitMod_Lib.BitMod_Timing.tpd_Clk_MData(BestCase)(tr01)+ 5 ns, BitMod_Lib.BitMod_Timing.tpd_Clk_MData(BestCase)(tr10)+ 5 ns))) port map( Test => Test, Clk => Clk, Reset_N => Reset_N, A => A, CS_N => CS0_N, RW_N => RW_N, D => D, SClk => SClk, SData => DataIn, MData => Data0); IC1: BitMod -- Absolute timing generic map( SimCondition => SimCondition, InstancePath => InstancePath&"IC1:", TimingChecksOn => TimingChecksOn, tpd_Clk_MData => ((5 ns, 5 ns), (5 ns, 5 ns), (5 ns, 5 ns))) port map( Test => Test, Clk => Clk, Reset_N => Reset_N, A => A, CS_N => CS1_N, RW_N => RW_N, D => D, SClk => SClk, SData => Data0, MData => Data1); IC2: BitMod -- Unmodified timing generic map( SimCondition => SimCondition, InstancePath => InstancePath&"IC2:", TimingChecksOn => TimingChecksOn) port map( Test => Test, Clk => Clk, Reset_N => Reset_N, A => A, CS_N => CS2_N, RW_N => RW_N, D => D, SClk => SClk, SData => Data1, MData => DataOut); end Configured; --================== End of architecture =====================--