Skip to content

pb_AddressDecoder

Patrick Lehmann edited this page Sep 8, 2015 · 1 revision

pb_AddressDecoder

pb_AddressDecoder is a generic address decoder for the PicoBlaze. It decoder a given PortID and Strobe signal. If these signals match the values from the predefined data structure ADDRESS_MAPPING a new set of strobes and addresses is emitted by the module. All signals needed for a write operation are registered for one cycle as described by Ken Chapman.

As described here, the ADDRESS_MAPPING data structure defines a mapping from global registers (PortIDs) to the device's internal registers.

Dependencies

library IEEE;
use     IEEE.STD_LOGIC_1164.all;
use     IEEE.NUMERIC_STD.all;
 
library PoC;
use     PoC.utils.all;
use     PoC.vectors.all;
use     PoC.io.all;
 
library L_PicoBlaze;
use     L_PicoBlaze.pb.all;

Entity Declaration

entity PicoBlaze_AddressDecoder is
  generic (
    ADDRESS_MAPPING         : T_PB_ADDRESS_MAPPING
  );                        
  port (                    
    Clock                   : in  STD_LOGIC;
    Reset                   : in  STD_LOGIC;
                            
    -- PicoBlaze interface  
    In_WriteStrobe          : in  STD_LOGIC;
    In_WriteStrobe_K        : in  STD_LOGIC;
    In_ReadStrobe           : in  STD_LOGIC;
    In_Address              : in  T_SLV_8;
    In_Data                 : in  T_SLV_8;
    Out_WriteStrobe         : out  STD_LOGIC;
    Out_ReadStrobe          : out  STD_LOGIC;
    Out_WriteAddress        : out  T_SLV_8;
    Out_ReadAddress         : out  T_SLV_8;
    Out_Data                : out  T_SLV_8
  );
end entity;

Clone this wiki locally