##// END OF EJS Templates
modif ms_reg_head : add error signal
pellion -
r470:8e762460b97c JC
parent child
Show More
@@ -7,4 +7,4 log -r *
7
7
8 do wave.do
8 do wave.do
9
9
10 run 250 us
10 run 65 ms
@@ -379,6 +379,7 BEGIN
379 in_data => sample_f1_wdata,
379 in_data => sample_f1_wdata,
380 in_full => sample_f1_full_head_in,
380 in_full => sample_f1_full_head_in,
381 in_empty => sample_f1_empty_head_in,
381 in_empty => sample_f1_empty_head_in,
382 out_write_error => error_wen_f1,
382 out_wen => sample_f1_wen_head_out,
383 out_wen => sample_f1_wen_head_out,
383 out_data => sample_f1_wdata_head,
384 out_data => sample_f1_wdata_head,
384 out_full => sample_f1_full_head_out);
385 out_full => sample_f1_full_head_out);
@@ -409,20 +410,20 BEGIN
409 almost_full => sample_f1_almost_full);
410 almost_full => sample_f1_almost_full);
410
411
411
412
412 one_sample_f1_wen <= '0' WHEN sample_f1_wen_s = "11111" ELSE '1';
413 one_sample_f1_wen <= '0' WHEN sample_f1_wen_head = "11111" ELSE '1';
413
414
414 PROCESS (clk, rstn)
415 PROCESS (clk, rstn)
415 BEGIN -- PROCESS
416 BEGIN -- PROCESS
416 IF rstn = '0' THEN -- asynchronous reset (active low)
417 IF rstn = '0' THEN -- asynchronous reset (active low)
417 one_sample_f1_full <= '0';
418 one_sample_f1_full <= '0';
418 error_wen_f1 <= '0';
419 --error_wen_f1 <= '0';
419 ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge
420 ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge
420 IF sample_f1_full_head_out = '0' THEN
421 IF sample_f1_full_head_out = '0' THEN
421 one_sample_f1_full <= '0';
422 one_sample_f1_full <= '0';
422 ELSE
423 ELSE
423 one_sample_f1_full <= '1';
424 one_sample_f1_full <= '1';
424 END IF;
425 END IF;
425 error_wen_f1 <= one_sample_f1_wen AND one_sample_f1_full;
426 --error_wen_f1 <= one_sample_f1_wen AND one_sample_f1_full;
426 END IF;
427 END IF;
427 END PROCESS;
428 END PROCESS;
428
429
@@ -11,6 +11,8 ENTITY lpp_lfr_ms_reg_head IS
11 in_data : IN STD_LOGIC_VECTOR(5*16-1 DOWNTO 0);
11 in_data : IN STD_LOGIC_VECTOR(5*16-1 DOWNTO 0);
12 in_full : IN STD_LOGIC;
12 in_full : IN STD_LOGIC;
13 in_empty : IN STD_LOGIC;
13 in_empty : IN STD_LOGIC;
14
15 out_write_error : OUT STD_LOGIC;
14
16
15 out_wen : OUT STD_LOGIC;
17 out_wen : OUT STD_LOGIC;
16 out_data : OUT STD_LOGIC_VECTOR(5*16-1 DOWNTO 0);
18 out_data : OUT STD_LOGIC_VECTOR(5*16-1 DOWNTO 0);
@@ -33,9 +35,10 BEGIN -- Beh
33 fsm_state <= REG_EMPTY;
35 fsm_state <= REG_EMPTY;
34 reg_data <= (OTHERS => '0');
36 reg_data <= (OTHERS => '0');
35 out_wen_s <= '1';
37 out_wen_s <= '1';
38 out_write_error <= '0';
36 ELSIF clk'event AND clk = '1' THEN
39 ELSIF clk'event AND clk = '1' THEN
37 out_wen_s <= '1';
40 out_wen_s <= '1';
38
41 out_write_error <= '0';
39 CASE fsm_state IS
42 CASE fsm_state IS
40 WHEN REG_EMPTY =>
43 WHEN REG_EMPTY =>
41 reg_data <= in_data;
44 reg_data <= in_data;
@@ -50,6 +53,10 BEGIN -- Beh
50 ELSE
53 ELSE
51 fsm_state <= REG_EMPTY;
54 fsm_state <= REG_EMPTY;
52 END IF;
55 END IF;
56 ELSE
57 IF in_wen = '0' THEN
58 out_write_error <= '1';
59 END IF;
53 END IF;
60 END IF;
54 WHEN OTHERS => NULL;
61 WHEN OTHERS => NULL;
55 END CASE;
62 END CASE;
@@ -382,6 +382,7 PACKAGE lpp_lfr_pkg IS
382 in_data : IN STD_LOGIC_VECTOR(5*16-1 DOWNTO 0);
382 in_data : IN STD_LOGIC_VECTOR(5*16-1 DOWNTO 0);
383 in_full : IN STD_LOGIC;
383 in_full : IN STD_LOGIC;
384 in_empty : IN STD_LOGIC;
384 in_empty : IN STD_LOGIC;
385 out_write_error : OUT STD_LOGIC;
385 out_wen : OUT STD_LOGIC;
386 out_wen : OUT STD_LOGIC;
386 out_data : OUT STD_LOGIC_VECTOR(5*16-1 DOWNTO 0);
387 out_data : OUT STD_LOGIC_VECTOR(5*16-1 DOWNTO 0);
387 out_full : OUT STD_LOGIC);
388 out_full : OUT STD_LOGIC);
General Comments 0
You need to be logged in to leave comments. Login now