Line 98... |
Line 98... |
C_NR_BITS_TOTAL : integer := 1536;
|
C_NR_BITS_TOTAL : integer := 1536;
|
C_NR_STAGES_TOTAL : integer := 96;
|
C_NR_STAGES_TOTAL : integer := 96;
|
C_NR_STAGES_LOW : integer := 32;
|
C_NR_STAGES_LOW : integer := 32;
|
C_SPLIT_PIPELINE : boolean := true;
|
C_SPLIT_PIPELINE : boolean := true;
|
C_FIFO_DEPTH : integer := 32;
|
C_FIFO_DEPTH : integer := 32;
|
C_MEM_STYLE : string := "xil_prim"; -- xil_prim, generic, asym are valid options
|
C_MEM_STYLE : string := "asym"; -- xil_prim, generic, asym are valid options
|
C_FPGA_MAN : string := "xilinx"; -- xilinx, altera are valid options
|
C_FPGA_MAN : string := "xilinx"; -- xilinx, altera are valid options
|
-- Bus protocol parameters
|
-- Bus protocol parameters
|
C_S_AXI_DATA_WIDTH : integer := 32;
|
C_S_AXI_DATA_WIDTH : integer := 32;
|
C_S_AXI_ADDR_WIDTH : integer := 32;
|
C_S_AXI_ADDR_WIDTH : integer := 32;
|
C_BASEADDR : std_logic_vector := X"FFFFFFFF";
|
C_BASEADDR : std_logic_vector := X"FFFFFFFF";
|
Line 286... |
Line 286... |
|
|
-- implement slave register
|
-- implement slave register
|
SLAVE_REG_WRITE_PROC : process( S_AXI_ACLK ) is
|
SLAVE_REG_WRITE_PROC : process( S_AXI_ACLK ) is
|
begin
|
begin
|
if rising_edge(S_AXI_ACLK) then
|
if rising_edge(S_AXI_ACLK) then
|
if S_AXI_ARESETN = '0' then
|
if reset = '1' then
|
slv_reg <= (others => '0');
|
slv_reg <= (others => '0');
|
elsif load_flags = '1' then
|
elsif load_flags = '1' then
|
slv_reg <= slv_reg(31 downto 16) & core_flags;
|
slv_reg <= slv_reg(31 downto 16) & core_flags;
|
else
|
else
|
if (slv_reg_write_enable='1') then
|
if (slv_reg_write_enable='1') then
|
Line 304... |
Line 304... |
core_interrupt <= core_ready or core_mem_collision or core_fifo_full or core_fifo_nopush;
|
core_interrupt <= core_ready or core_mem_collision or core_fifo_full or core_fifo_nopush;
|
IntrEvent <= core_interrupt;
|
IntrEvent <= core_interrupt;
|
|
|
FLAGS_CNTRL_PROC : process(S_AXI_ACLK, S_AXI_ARESETN) is
|
FLAGS_CNTRL_PROC : process(S_AXI_ACLK, S_AXI_ARESETN) is
|
begin
|
begin
|
if S_AXI_ARESETN = '0' then
|
if reset = '1' then
|
core_flags <= (others => '0');
|
core_flags <= (others => '0');
|
load_flags <= '0';
|
load_flags <= '0';
|
elsif rising_edge(S_AXI_ACLK) then
|
elsif rising_edge(S_AXI_ACLK) then
|
if core_start = '1' then
|
if core_start = '1' then
|
core_flags <= (others => '0');
|
core_flags <= (others => '0');
|