Commit fbdc4006 authored by penacoba's avatar penacoba

New Register Control module for the core based in RAM block


git-svn-id: http://svn.ohwr.org/fmc-tdc@49 85dfdc96-de2c-444c-878d-45b388be74a9
parent 8c49a6d8
...@@ -36,7 +36,7 @@ entity circular_buffer is ...@@ -36,7 +36,7 @@ entity circular_buffer is
class_clk_i : in std_logic; class_clk_i : in std_logic;
class_reset_i : in std_logic; class_reset_i : in std_logic;
class_adr_i : in std_logic_vector(19 downto 0); class_adr_i : in std_logic_vector(g_width-1 downto 0);
class_cyc_i : in std_logic; class_cyc_i : in std_logic;
class_dat_i : in std_logic_vector(4*g_width-1 downto 0); class_dat_i : in std_logic_vector(4*g_width-1 downto 0);
class_stb_i : in std_logic; class_stb_i : in std_logic;
...@@ -49,7 +49,7 @@ entity circular_buffer is ...@@ -49,7 +49,7 @@ entity circular_buffer is
pipe_clk_i : in std_logic; pipe_clk_i : in std_logic;
pipe_reset_i : in std_logic; pipe_reset_i : in std_logic;
pipe_adr_i : in std_logic_vector(19 downto 0); pipe_adr_i : in std_logic_vector(g_width-1 downto 0);
pipe_cyc_i : in std_logic; pipe_cyc_i : in std_logic;
pipe_dat_i : in std_logic_vector(g_width-1 downto 0); pipe_dat_i : in std_logic_vector(g_width-1 downto 0);
pipe_stb_i : in std_logic; pipe_stb_i : in std_logic;
...@@ -66,17 +66,19 @@ end circular_buffer; ...@@ -66,17 +66,19 @@ end circular_buffer;
---------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------
architecture rtl of circular_buffer is architecture rtl of circular_buffer is
component blk_mem_gen_v6_2 component blk_mem_gen_v6_3
port( port(
clka : in std_logic; clka : in std_logic;
addra : in std_logic_vector(6 downto 0); addra : in std_logic_vector(6 downto 0);
dina : in std_logic_vector(127 downto 0); dina : in std_logic_vector(127 downto 0);
ena : in std_logic;
wea : in std_logic_vector(0 downto 0); wea : in std_logic_vector(0 downto 0);
douta : out std_logic_vector(127 downto 0); douta : out std_logic_vector(127 downto 0);
clkb : in std_logic; clkb : in std_logic;
addrb : in std_logic_vector(8 downto 0); addrb : in std_logic_vector(8 downto 0);
dinb : in std_logic_vector(31 downto 0); dinb : in std_logic_vector(31 downto 0);
enb : in std_logic;
web : in std_logic_vector(0 downto 0); web : in std_logic_vector(0 downto 0);
doutb : out std_logic_vector(31 downto 0) doutb : out std_logic_vector(31 downto 0)
); );
...@@ -92,6 +94,7 @@ signal class_clk : std_logic; ...@@ -92,6 +94,7 @@ signal class_clk : std_logic;
signal class_cyc : std_logic; signal class_cyc : std_logic;
signal class_data_rd : std_logic_vector(4*g_width-1 downto 0); signal class_data_rd : std_logic_vector(4*g_width-1 downto 0);
signal class_data_wr : std_logic_vector(4*g_width-1 downto 0); signal class_data_wr : std_logic_vector(4*g_width-1 downto 0);
signal class_en : std_logic;
signal class_reset : std_logic; signal class_reset : std_logic;
signal class_stb : std_logic; signal class_stb : std_logic;
signal class_we : std_logic_vector(0 downto 0); signal class_we : std_logic_vector(0 downto 0);
...@@ -102,6 +105,7 @@ signal pipe_clk : std_logic; ...@@ -102,6 +105,7 @@ signal pipe_clk : std_logic;
signal pipe_cyc : std_logic; signal pipe_cyc : std_logic;
signal pipe_data_rd : std_logic_vector(g_width-1 downto 0); signal pipe_data_rd : std_logic_vector(g_width-1 downto 0);
signal pipe_data_wr : std_logic_vector(g_width-1 downto 0); signal pipe_data_wr : std_logic_vector(g_width-1 downto 0);
signal pipe_en : std_logic;
signal pipe_reset : std_logic; signal pipe_reset : std_logic;
signal pipe_stb : std_logic; signal pipe_stb : std_logic;
signal pipe_we : std_logic_vector(0 downto 0); signal pipe_we : std_logic_vector(0 downto 0);
...@@ -179,17 +183,19 @@ begin ...@@ -179,17 +183,19 @@ begin
end case; end case;
end process; end process;
memory_block: blk_mem_gen_v6_2 memory_block: blk_mem_gen_v6_3
port map( port map(
clka => class_clk, clka => class_clk,
addra => class_adr, addra => class_adr,
dina => class_data_wr, dina => class_data_wr,
ena => class_en,
wea => class_we, wea => class_we,
douta => class_data_rd, douta => class_data_rd,
clkb => pipe_clk, clkb => pipe_clk,
addrb => pipe_adr, addrb => pipe_adr,
dinb => pipe_data_wr, dinb => pipe_data_wr,
enb => pipe_en,
web => pipe_we, web => pipe_we,
doutb => pipe_data_rd doutb => pipe_data_rd
); );
...@@ -201,6 +207,7 @@ begin ...@@ -201,6 +207,7 @@ begin
class_adr <= class_adr_i(6 downto 0); class_adr <= class_adr_i(6 downto 0);
class_cyc <= class_cyc_i; class_cyc <= class_cyc_i;
class_data_wr <= class_dat_i; class_data_wr <= class_dat_i;
class_en <= class_cyc;
class_stb <= class_stb_i; class_stb <= class_stb_i;
class_we(0) <= class_we_i; class_we(0) <= class_we_i;
...@@ -210,6 +217,7 @@ begin ...@@ -210,6 +217,7 @@ begin
pipe_adr <= pipe_adr_i(8 downto 0); pipe_adr <= pipe_adr_i(8 downto 0);
pipe_cyc <= pipe_cyc_i; pipe_cyc <= pipe_cyc_i;
pipe_data_wr <= pipe_dat_i; pipe_data_wr <= pipe_dat_i;
pipe_en <= pipe_cyc;
pipe_stb <= pipe_stb_i; pipe_stb <= pipe_stb_i;
pipe_we(0) <= pipe_we_i; pipe_we(0) <= pipe_we_i;
......
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
-- author : G. Penacoba -- author : G. Penacoba
-- date : May 2011 -- date : May 2011
-- version : Revision 1 -- version : Revision 1
-- description : generates one pulse every second synchronously with the acam reference clock -- description : generates one pulse every second synchronously with the acam reference clock.
-- The phase with the reference clock can be adjusted.
-- dependencies: -- dependencies:
-- references : -- references :
-- modified by : -- modified by :
...@@ -32,9 +33,9 @@ entity one_hz_gen is ...@@ -32,9 +33,9 @@ entity one_hz_gen is
port( port(
acam_refclk_i : in std_logic; acam_refclk_i : in std_logic;
clk_i : in std_logic; clk_i : in std_logic;
clock_period_i : in std_logic_vector(g_width-1 downto 0); clock_period_i : in std_logic_vector(g_width-1 downto 0); -- nb of clock periods for 1s
pulse_delay_i : in std_logic_vector(g_width-1 downto 0); pulse_delay_i : in std_logic_vector(g_width-1 downto 0); -- nb of clock periods phase delay
reset_i : in std_logic; reset_i : in std_logic; -- with respect to reference clock
one_hz_p_o : out std_logic one_hz_p_o : out std_logic
); );
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment