624 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
			
		
		
	
	
			624 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
| -- VHDL Entity Board.pipelineCounter_ebs3.symbol
 | |
| --
 | |
| -- Created:
 | |
| --          by - axel.amand.UNKNOWN (WE7860)
 | |
| --          at - 11:16:01 08.05.2023
 | |
| --
 | |
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
 | |
| --
 | |
| LIBRARY ieee;
 | |
|   USE ieee.std_logic_1164.all;
 | |
|   USE ieee.numeric_std.all;
 | |
| 
 | |
| ENTITY pipelineCounter_ebs3 IS
 | |
|     GENERIC( 
 | |
|         counterBitNb : positive := 16
 | |
|     );
 | |
|     PORT( 
 | |
|         clock    : IN     std_ulogic;
 | |
|         reset_n  : IN     std_ulogic;
 | |
|         countOut : OUT    unsigned (counterBitNb-1 DOWNTO 0)
 | |
|     );
 | |
| 
 | |
| -- Declarations
 | |
| 
 | |
| END pipelineCounter_ebs3 ;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- VHDL Entity PipelinedOperators.pipelineCounter.symbol
 | |
| --
 | |
| -- Created:
 | |
| --          by - francois.francois (Aphelia)
 | |
| --          at - 08:50:00 03/11/19
 | |
| --
 | |
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
 | |
| --
 | |
| LIBRARY ieee;
 | |
|   USE ieee.std_logic_1164.all;
 | |
|   USE ieee.numeric_std.all;
 | |
| 
 | |
| ENTITY pipelineCounter IS
 | |
|     GENERIC( 
 | |
|         bitNb   : positive;
 | |
|         stageNb : positive
 | |
|     );
 | |
|     PORT( 
 | |
|         countOut : OUT    unsigned (bitNb-1 DOWNTO 0);
 | |
|         clock    : IN     std_ulogic;
 | |
|         reset    : IN     std_ulogic
 | |
|     );
 | |
| 
 | |
| -- Declarations
 | |
| 
 | |
| END pipelineCounter ;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- VHDL Entity PipelinedOperators.pipelineAdder.symbol
 | |
| --
 | |
| -- Created:
 | |
| --          by - francois.francois (Aphelia)
 | |
| --          at - 08:50:15 03/11/19
 | |
| --
 | |
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
 | |
| --
 | |
| LIBRARY ieee;
 | |
|   USE ieee.std_logic_1164.all;
 | |
|   USE ieee.numeric_std.all;
 | |
| 
 | |
| ENTITY pipelineAdder IS
 | |
|     GENERIC( 
 | |
|         bitNb   : positive;
 | |
|         stageNb : positive
 | |
|     );
 | |
|     PORT( 
 | |
|         sum   : OUT    signed (bitNb-1 DOWNTO 0);
 | |
|         clock : IN     std_ulogic;
 | |
|         reset : IN     std_ulogic;
 | |
|         cIn   : IN     std_ulogic;
 | |
|         cOut  : OUT    std_ulogic;
 | |
|         a     : IN     signed (bitNb-1 DOWNTO 0);
 | |
|         b     : IN     signed (bitNb-1 DOWNTO 0)
 | |
|     );
 | |
| 
 | |
| -- Declarations
 | |
| 
 | |
| END pipelineAdder ;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- VHDL Entity PipelinedOperators.parallelAdder.symbol
 | |
| --
 | |
| -- Created:
 | |
| --          by - axel.amand.UNKNOWN (WE7860)
 | |
| --          at - 11:43:49 28.04.2023
 | |
| --
 | |
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
 | |
| --
 | |
| LIBRARY ieee;
 | |
|   USE ieee.std_logic_1164.all;
 | |
|   USE ieee.numeric_std.all;
 | |
| 
 | |
| ENTITY parallelAdder IS
 | |
|     GENERIC( 
 | |
|         bitNb : positive := 32
 | |
|     );
 | |
|     PORT( 
 | |
|         sum  : OUT    signed (bitNb-1 DOWNTO 0);
 | |
|         cIn  : IN     std_ulogic;
 | |
|         cOut : OUT    std_ulogic;
 | |
|         a    : IN     signed (bitNb-1 DOWNTO 0);
 | |
|         b    : IN     signed (bitNb-1 DOWNTO 0)
 | |
|     );
 | |
| 
 | |
| -- Declarations
 | |
| 
 | |
| END parallelAdder ;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ARCHITECTURE masterVersion OF parallelAdder IS
 | |
| 
 | |
|   signal sum_int: unsigned(sum'high+1 downto 0);
 | |
| 
 | |
| BEGIN
 | |
| 
 | |
|   sum_int <= resize(unsigned(a), sum_int'length) +
 | |
|              resize(unsigned(b), sum_int'length) +
 | |
|              resize('0' & cIn, sum_int'length);
 | |
| 
 | |
|   sum <= signed(sum_int(sum'range));
 | |
|   cOut <= sum_int(sum_int'high);
 | |
| 
 | |
| END ARCHITECTURE masterVersion;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ARCHITECTURE masterVersion OF pipelineAdder IS
 | |
| 
 | |
|   constant stageBitNb : positive := sum'length/stageNb;
 | |
|   subtype stageOperandType is signed(stageBitNb-1 downto 0);
 | |
|   type stageOperandVectorType is array(stageNb-1 downto 0) of stageOperandType;
 | |
|   type stageOperandMatrixType is array(stageNb-1 downto 0) of stageOperandVectorType;
 | |
|   subtype carryType is std_ulogic_vector(stageNb downto 0);
 | |
| 
 | |
|   signal a_int, b_int, sum_int : stageOperandMatrixType;
 | |
|   signal carryIn, carryOut : carryType;
 | |
| 
 | |
|   COMPONENT parallelAdder
 | |
|   GENERIC (
 | |
|     bitNb : positive := 32
 | |
|   );
 | |
|   PORT (
 | |
|     sum  : OUT    signed (bitNb-1 DOWNTO 0);
 | |
|     cIn  : IN     std_ulogic ;
 | |
|     cOut : OUT    std_ulogic ;
 | |
|     a    : IN     signed (bitNb-1 DOWNTO 0);
 | |
|     b    : IN     signed (bitNb-1 DOWNTO 0)
 | |
|   );
 | |
|   END COMPONENT;
 | |
| 
 | |
| BEGIN
 | |
| 
 | |
|   carryIn(0) <= cIn;
 | |
| 
 | |
|   distributeInput: for wordIndex in stageOperandVectorType'range generate
 | |
|     a_int(wordIndex)(0) <= a(wordIndex*stageBitNb+stageBitNb-1 downto wordIndex*stageBitNb);
 | |
|     b_int(wordIndex)(0) <= b(wordIndex*stageBitNb+stageBitNb-1 downto wordIndex*stageBitNb);
 | |
|   end generate distributeInput;
 | |
| 
 | |
|   inputRegistersX: for wordIndex in stageOperandVectorType'high downto 1 generate
 | |
|     inputRegistersY: for pipeIndex in stageOperandMatrixType'high downto 1 generate
 | |
|       upperTriangle: if wordIndex >= pipeIndex generate
 | |
|         inputRegisters: process(reset, clock)
 | |
|         begin
 | |
|           if reset = '1' then
 | |
|             a_int(wordIndex)(pipeIndex) <= (others => '0');
 | |
|             b_int(wordIndex)(pipeIndex) <= (others => '0');
 | |
|           elsif rising_edge(clock) then
 | |
|             a_int(wordIndex)(pipeIndex) <= a_int(wordIndex)(pipeIndex-1);
 | |
|             b_int(wordIndex)(pipeIndex) <= b_int(wordIndex)(pipeIndex-1);
 | |
|           end if;
 | |
|         end process inputRegisters;
 | |
|       end generate upperTriangle;
 | |
|     end generate inputRegistersY;
 | |
|   end generate inputRegistersX;
 | |
| 
 | |
|   operation: for index in stageOperandVectorType'range generate
 | |
|     partialAdder: parallelAdder
 | |
|       GENERIC MAP (bitNb => stageBitNb)
 | |
|       PORT MAP (
 | |
|          a    => a_int(index)(index),
 | |
|          b    => b_int(index)(index),
 | |
|          sum  => sum_int(index)(index),
 | |
|          cIn  => carryIn(index),
 | |
|          cOut => carryOut(index)
 | |
|       );
 | |
|       carryRegisters: process(reset, clock)
 | |
|       begin
 | |
|         if reset = '1' then
 | |
|           carryIn(index+1) <= '0';
 | |
|         elsif rising_edge(clock) then
 | |
|           carryIn(index+1) <= carryOut(index);
 | |
|         end if;
 | |
|       end process carryRegisters;
 | |
|   end generate operation;
 | |
| 
 | |
|   outputRegistersX: for wordIndex in stageOperandVectorType'range generate
 | |
|     outputRegistersY: for pipeIndex in stageOperandMatrixType'range generate
 | |
|       lowerTriangle: if wordIndex < pipeIndex generate
 | |
|         outputRegisters: process(reset, clock)
 | |
|         begin
 | |
|           if reset = '1' then
 | |
|             sum_int(wordIndex)(pipeIndex) <= (others => '0');
 | |
|           elsif rising_edge(clock) then
 | |
|             sum_int(wordIndex)(pipeIndex) <= sum_int(wordIndex)(pipeIndex-1);
 | |
|           end if;
 | |
|         end process outputRegisters;
 | |
|       end generate lowerTriangle;
 | |
|     end generate outputRegistersY;
 | |
|   end generate outputRegistersX;
 | |
| 
 | |
|   packOutput: for index in stageOperandVectorType'range generate
 | |
|     sum(index*stageBitNb+stageBitNb-1 downto index*stageBitNb) <=
 | |
|       sum_int(index)(stageOperandMatrixType'high);
 | |
|   end generate packOutput;
 | |
| 
 | |
|   cOut <= carryOut(carryOut'high-1);
 | |
| 
 | |
| END ARCHITECTURE masterVersion;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ARCHITECTURE masterVersion OF pipelineCounter IS
 | |
| 
 | |
|   signal initCounter : unsigned(countOut'length/stageNb-1 downto 0);
 | |
|   signal b : signed(countOut'range);
 | |
|   signal sum : signed(countOut'range);
 | |
| 
 | |
|   COMPONENT pipelineAdder
 | |
|   GENERIC (
 | |
|     bitNb   : positive := 32;
 | |
|     stageNb : positive := 4
 | |
|   );
 | |
|   PORT (
 | |
|     reset : IN     std_ulogic;
 | |
|     clock : IN     std_ulogic;
 | |
|     cIn   : IN     std_ulogic;
 | |
|     a     : IN     signed (bitNb-1 DOWNTO 0);
 | |
|     b     : IN     signed (bitNb-1 DOWNTO 0);
 | |
|     sum   : OUT    signed (bitNb-1 DOWNTO 0);
 | |
|     cOut  : OUT    std_ulogic
 | |
|   );
 | |
|   END COMPONENT;
 | |
| 
 | |
| BEGIN
 | |
| 
 | |
|   adder: pipelineAdder
 | |
|     GENERIC MAP (
 | |
|       bitNb => countOut'length,
 | |
|       stageNb => stageNb
 | |
|       )
 | |
|     PORT MAP (
 | |
|        reset => reset,
 | |
|        clock => clock,
 | |
|        cIn   => '0',
 | |
|        a     => sum,
 | |
|        b     => b,
 | |
|        sum   => sum,
 | |
|        cOut  => open
 | |
|     );
 | |
| 
 | |
|   prepareBInput: process(reset, clock)
 | |
|   begin
 | |
|     if reset = '1' then
 | |
|       initCounter <= (others => '0');
 | |
|     elsif rising_edge(clock) then
 | |
|       if initCounter < stageNb then
 | |
|         initCounter <= initCounter + 1;
 | |
|       end if;
 | |
|     end if;
 | |
|   end process prepareBInput;
 | |
| 
 | |
|   selectInitOrRun: process(initCounter, sum)
 | |
|   begin
 | |
|     if initCounter < stageNb-1 then
 | |
|       b <= signed(resize(initCounter+stageNb-1, b'length));
 | |
|       countOut <= resize(initCounter, countOut'length);
 | |
|     else
 | |
|       b <= to_signed(stageNb-1, b'length);
 | |
|       countOut <= unsigned(sum);
 | |
|     end if;
 | |
|   end process selectInitOrRun;
 | |
| 
 | |
| END ARCHITECTURE masterVersion;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- VHDL Entity Board.DFF.symbol
 | |
| --
 | |
| -- Created:
 | |
| --          by - francois.francois (Aphelia)
 | |
| --          at - 13:07:05 02/19/19
 | |
| --
 | |
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
 | |
| --
 | |
| LIBRARY ieee;
 | |
| USE ieee.std_logic_1164.all;
 | |
| 
 | |
| ENTITY DFF IS
 | |
|     PORT( 
 | |
|         CLK : IN     std_uLogic;
 | |
|         CLR : IN     std_uLogic;
 | |
|         D   : IN     std_uLogic;
 | |
|         Q   : OUT    std_uLogic
 | |
|     );
 | |
| 
 | |
| -- Declarations
 | |
| 
 | |
| END DFF ;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ARCHITECTURE sim OF DFF IS
 | |
| BEGIN
 | |
| 
 | |
|   process(clk, clr)
 | |
|   begin
 | |
|     if clr = '1' then
 | |
|       q <= '0';
 | |
|     elsif rising_edge(clk) then
 | |
|       q <= d;
 | |
|     end if;
 | |
|   end process;
 | |
| 
 | |
| END ARCHITECTURE sim;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- VHDL Entity Board.inverterIn.symbol
 | |
| --
 | |
| -- Created:
 | |
| --          by - francois.francois (Aphelia)
 | |
| --          at - 13:07:14 02/19/19
 | |
| --
 | |
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
 | |
| --
 | |
| LIBRARY ieee;
 | |
| USE ieee.std_logic_1164.all;
 | |
| 
 | |
| ENTITY inverterIn IS
 | |
|     PORT( 
 | |
|         in1  : IN     std_uLogic;
 | |
|         out1 : OUT    std_uLogic
 | |
|     );
 | |
| 
 | |
| -- Declarations
 | |
| 
 | |
| END inverterIn ;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ARCHITECTURE sim OF inverterIn IS
 | |
| BEGIN
 | |
| 
 | |
|   out1 <= NOT in1;
 | |
| 
 | |
| END ARCHITECTURE sim;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- VHDL netlist generated by SCUBA Diamond (64-bit) 3.12.1.454
 | |
| -- Module  Version: 5.7
 | |
| --C:\lscc\diamond\3.12\ispfpga\bin\nt64\scuba.exe -w -n pll -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00 -type pll -fin 100.00 -fclkop 60 -fclkop_tol 10.0 -fclkos 75 -fclkos_tol 10.0 -phases 0 -fclkos2 50 -fclkos2_tol 10.0 -phases2 0 -fclkos3 10 -fclkos3_tol 10.0 -phases3 0 -phase_cntl STATIC -enable_s -enable_s2 -enable_s3 -pllLocked -fb_mode 1 -fdc C:/temp/clocker/pll/pll.fdc 
 | |
| 
 | |
| -- Offers 10MHz, 50MHz, 60MHz and 75MHz clocks
 | |
| 
 | |
| library IEEE;
 | |
|   use IEEE.std_logic_1164.all;
 | |
| library ECP5U;
 | |
|   use ECP5U.components.all;
 | |
| 
 | |
| ENTITY pll IS
 | |
|     PORT( 
 | |
|         clkIn100M : IN     std_ulogic;
 | |
|         en75M     : IN     std_ulogic;
 | |
|         en50M     : IN     std_ulogic;
 | |
|         en10M     : IN     std_ulogic;
 | |
|         clk60MHz  : OUT    std_ulogic;
 | |
|         clk75MHz  : OUT    std_ulogic;
 | |
|         clk50MHz  : OUT    std_ulogic;
 | |
|         clk10MHz  : OUT    std_ulogic;
 | |
|         pllLocked : OUT    std_ulogic
 | |
|     );
 | |
| 
 | |
| -- Declarations
 | |
| 
 | |
| END pll ;
 | |
| 
 | |
| architecture rtl of pll is
 | |
| 
 | |
|     -- internal signal declarations
 | |
|     signal REFCLK: std_logic;
 | |
|     signal CLKOS3_t: std_logic;
 | |
|     signal CLKOS2_t: std_logic;
 | |
|     signal CLKOS_t: std_logic;
 | |
|     signal CLKOP_t: std_logic;
 | |
|     signal scuba_vhi: std_logic;
 | |
|     signal scuba_vlo: std_logic;
 | |
| 
 | |
|     attribute FREQUENCY_PIN_CLKOS3 : string; 
 | |
|     attribute FREQUENCY_PIN_CLKOS2 : string; 
 | |
|     attribute FREQUENCY_PIN_CLKOS : string; 
 | |
|     attribute FREQUENCY_PIN_CLKOP : string; 
 | |
|     attribute FREQUENCY_PIN_CLKI : string; 
 | |
|     attribute ICP_CURRENT : string; 
 | |
|     attribute LPF_RESISTOR : string; 
 | |
|     attribute FREQUENCY_PIN_CLKOS3 of PLLInst_0 : label is "10.000000";
 | |
|     attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "50.000000";
 | |
|     attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "75.000000";
 | |
|     attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "60.000000";
 | |
|     attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "100.000000";
 | |
|     attribute ICP_CURRENT of PLLInst_0 : label is "5";
 | |
|     attribute LPF_RESISTOR of PLLInst_0 : label is "16";
 | |
|     attribute syn_keep : boolean;
 | |
|     attribute NGD_DRC_MASK : integer;
 | |
|     attribute NGD_DRC_MASK of rtl : architecture is 1;
 | |
| 
 | |
| begin
 | |
|     -- component instantiation statements
 | |
|     scuba_vhi_inst: VHI
 | |
|         port map (Z=>scuba_vhi);
 | |
| 
 | |
|     scuba_vlo_inst: VLO
 | |
|         port map (Z=>scuba_vlo);
 | |
| 
 | |
|     PLLInst_0: EHXPLLL
 | |
|         generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", 
 | |
|         STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", 
 | |
|         CLKOS3_FPHASE=>  0, CLKOS3_CPHASE=>  59, CLKOS2_FPHASE=>  0, 
 | |
|         CLKOS2_CPHASE=>  11, CLKOS_FPHASE=>  0, CLKOS_CPHASE=>  7, 
 | |
|         CLKOP_FPHASE=>  0, CLKOP_CPHASE=>  9, PLL_LOCK_MODE=>  0, 
 | |
|         CLKOS_TRIM_DELAY=>  0, CLKOS_TRIM_POL=> "FALLING", 
 | |
|         CLKOP_TRIM_DELAY=>  0, CLKOP_TRIM_POL=> "FALLING", 
 | |
|         OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "DISABLED", 
 | |
|         OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "DISABLED", 
 | |
|         OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "DISABLED", 
 | |
|         OUTDIVIDER_MUXA=> "DIVA", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=>  60, 
 | |
|         CLKOS2_DIV=>  12, CLKOS_DIV=>  8, CLKOP_DIV=>  10, CLKFB_DIV=>  3, 
 | |
|         CLKI_DIV=>  5, FEEDBK_PATH=> "CLKOP")
 | |
|         port map (CLKI=>clkIn100M, CLKFB=>CLKOP_t, PHASESEL1=>scuba_vlo, 
 | |
|             PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, 
 | |
|             PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, 
 | |
|             STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, 
 | |
|             ENCLKOP=>scuba_vlo, ENCLKOS=>en75M, ENCLKOS2=>en50M, 
 | |
|             ENCLKOS3=>en10M, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, 
 | |
|             CLKOS2=>CLKOS2_t, CLKOS3=>CLKOS3_t, LOCK=>pllLocked, 
 | |
|             INTLOCK=>open, REFCLK=>REFCLK, CLKINTFB=>open);
 | |
| 
 | |
|     clk10MHz <= CLKOS3_t;
 | |
|     clk50MHz <= CLKOS2_t;
 | |
|     clk75MHz <= CLKOS_t;
 | |
|     clk60MHz <= CLKOP_t;
 | |
| end rtl;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| --
 | |
| -- VHDL Architecture Board.pipelineCounter_ebs3.struct
 | |
| --
 | |
| -- Created:
 | |
| --          by - axel.amand.UNKNOWN (WE7860)
 | |
| --          at - 11:16:01 08.05.2023
 | |
| --
 | |
| -- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
 | |
| --
 | |
| LIBRARY ieee;
 | |
|   USE ieee.std_logic_1164.all;
 | |
|   USE ieee.numeric_std.all;
 | |
| 
 | |
| -- LIBRARY Board;
 | |
| -- LIBRARY Lattice;
 | |
| -- LIBRARY PipelinedOperators;
 | |
| 
 | |
| ARCHITECTURE struct OF pipelineCounter_ebs3 IS
 | |
| 
 | |
|     -- Architecture declarations
 | |
|     constant pipelineStageNb: positive := 5;
 | |
| 
 | |
|     -- Internal signal declarations
 | |
|     SIGNAL clk_sys      : std_ulogic;
 | |
|     SIGNAL logic0       : std_ulogic;
 | |
|     SIGNAL logic1       : std_uLogic;
 | |
|     SIGNAL reset        : std_ulogic;
 | |
|     SIGNAL resetSynch   : std_ulogic;
 | |
|     SIGNAL resetSynch_n : std_ulogic;
 | |
| 
 | |
| 
 | |
|     -- Component Declarations
 | |
|     COMPONENT DFF
 | |
|     PORT (
 | |
|         CLK : IN     std_uLogic ;
 | |
|         CLR : IN     std_uLogic ;
 | |
|         D   : IN     std_uLogic ;
 | |
|         Q   : OUT    std_uLogic 
 | |
|     );
 | |
|     END COMPONENT;
 | |
|     COMPONENT inverterIn
 | |
|     PORT (
 | |
|         in1  : IN     std_uLogic ;
 | |
|         out1 : OUT    std_uLogic 
 | |
|     );
 | |
|     END COMPONENT;
 | |
|     COMPONENT pll
 | |
|     PORT (
 | |
|         clkIn100M : IN     std_ulogic ;
 | |
|         en75M     : IN     std_ulogic ;
 | |
|         en50M     : IN     std_ulogic ;
 | |
|         en10M     : IN     std_ulogic ;
 | |
|         clk60MHz  : OUT    std_ulogic ;
 | |
|         clk75MHz  : OUT    std_ulogic ;
 | |
|         clk50MHz  : OUT    std_ulogic ;
 | |
|         clk10MHz  : OUT    std_ulogic ;
 | |
|         pllLocked : OUT    std_ulogic 
 | |
|     );
 | |
|     END COMPONENT;
 | |
|     COMPONENT pipelineCounter
 | |
|     GENERIC (
 | |
|         bitNb   : positive;
 | |
|         stageNb : positive
 | |
|     );
 | |
|     PORT (
 | |
|         countOut : OUT    unsigned (bitNb-1 DOWNTO 0);
 | |
|         clock    : IN     std_ulogic ;
 | |
|         reset    : IN     std_ulogic 
 | |
|     );
 | |
|     END COMPONENT;
 | |
| 
 | |
|     -- Optional embedded configurations
 | |
|     -- pragma synthesis_off
 | |
| --     FOR ALL : DFF USE ENTITY Board.DFF;
 | |
| --     FOR ALL : inverterIn USE ENTITY Board.inverterIn;
 | |
| --     FOR ALL : pipelineCounter USE ENTITY PipelinedOperators.pipelineCounter;
 | |
| --     FOR ALL : pll USE ENTITY Lattice.pll;
 | |
|     -- pragma synthesis_on
 | |
| 
 | |
| 
 | |
| BEGIN
 | |
|     -- Architecture concurrent statements
 | |
|     -- HDL Embedded Text Block 5 eb5
 | |
|     logic1 <= '1';
 | |
| 
 | |
|     -- HDL Embedded Text Block 6 eb6
 | |
|     logic0 <= '0';
 | |
| 
 | |
| 
 | |
|     -- Instance port mappings.
 | |
|     I_dff : DFF
 | |
|         PORT MAP (
 | |
|             CLK => clock,
 | |
|             CLR => reset,
 | |
|             D   => logic1,
 | |
|             Q   => resetSynch_n
 | |
|         );
 | |
|     I_inv1 : inverterIn
 | |
|         PORT MAP (
 | |
|             in1  => reset_n,
 | |
|             out1 => reset
 | |
|         );
 | |
|     I_inv2 : inverterIn
 | |
|         PORT MAP (
 | |
|             in1  => resetSynch_n,
 | |
|             out1 => resetSynch
 | |
|         );
 | |
|     I_pll : pll
 | |
|         PORT MAP (
 | |
|             clkIn100M => clock,
 | |
|             en75M     => logic0,
 | |
|             en50M     => logic0,
 | |
|             en10M     => logic0,
 | |
|             clk60MHz  => clk_sys,
 | |
|             clk75MHz  => OPEN,
 | |
|             clk50MHz  => OPEN,
 | |
|             clk10MHz  => OPEN,
 | |
|             pllLocked => OPEN
 | |
|         );
 | |
|     I_cnt : pipelineCounter
 | |
|         GENERIC MAP (
 | |
|             bitNb   => counterBitNb,
 | |
|             stageNb => pipelineStageNb
 | |
|         )
 | |
|         PORT MAP (
 | |
|             countOut => countOut,
 | |
|             clock    => clk_sys,
 | |
|             reset    => resetSynch
 | |
|         );
 | |
| 
 | |
| END struct;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |