NbDataField counter
This commit is contained in:
parent
b342c91a16
commit
d29501d307
@ -1,6 +1,7 @@
|
|||||||
LIBRARY ieee;
|
LIBRARY ieee;
|
||||||
USE ieee.std_logic_1164.all;
|
USE ieee.std_logic_1164.all;
|
||||||
USE ieee.std_logic_arith.all;
|
-- USE ieee.std_logic_arith.all;
|
||||||
|
USE ieee.numeric_std.all;
|
||||||
|
|
||||||
ENTITY receptionTrame_op IS
|
ENTITY receptionTrame_op IS
|
||||||
GENERIC(
|
GENERIC(
|
||||||
@ -41,7 +42,8 @@ END receptionTrame_op;
|
|||||||
ARCHITECTURE arch OF receptionTrame_op IS
|
ARCHITECTURE arch OF receptionTrame_op IS
|
||||||
SIGNAL LinSynchro_int : std_logic;
|
SIGNAL LinSynchro_int : std_logic;
|
||||||
SIGNAL octetRecu_int : std_logic_vector(7 downto 0);
|
SIGNAL octetRecu_int : std_logic_vector(7 downto 0);
|
||||||
SIGNAL nbDataField_INIT : integer;
|
SIGNAL nbDataField_INIT_int : integer := 0;
|
||||||
|
SIGNAL nbDataField_INIT : unsigned(2 downto 0);
|
||||||
|
|
||||||
COMPONENT D_FF
|
COMPONENT D_FF
|
||||||
PORT(
|
PORT(
|
||||||
@ -64,6 +66,24 @@ COMPONENT shift_register
|
|||||||
Q: OUT std_logic_vector
|
Q: OUT std_logic_vector
|
||||||
);
|
);
|
||||||
END COMPONENT;
|
END COMPONENT;
|
||||||
|
|
||||||
|
COMPONENT counter
|
||||||
|
GENERIC(
|
||||||
|
WIDTH: integer;
|
||||||
|
MAX_VAL: integer
|
||||||
|
);
|
||||||
|
PORT(
|
||||||
|
H: IN std_logic;
|
||||||
|
H_EN: IN std_logic;
|
||||||
|
nRst: IN std_logic;
|
||||||
|
INIT: IN unsigned(WIDTH-1 downto 0);
|
||||||
|
LOAD: IN std_logic;
|
||||||
|
upnDown: IN std_logic;
|
||||||
|
|
||||||
|
val: OUT unsigned(WIDTH-1 downto 0);
|
||||||
|
max: OUT std_logic
|
||||||
|
);
|
||||||
|
END COMPONENT;
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
LinSynchro <= LinSynchro_int;
|
LinSynchro <= LinSynchro_int;
|
||||||
@ -93,13 +113,30 @@ Lin_para : shift_register
|
|||||||
|
|
||||||
-- Decoder
|
-- Decoder
|
||||||
WITH octetRecu_int(5 downto 4) SELECT
|
WITH octetRecu_int(5 downto 4) SELECT
|
||||||
nbDataField_INIT <=
|
nbDataField_INIT_int <=
|
||||||
1 when "00",
|
1 when "00",
|
||||||
1 when "01",
|
1 when "01",
|
||||||
3 when "10",
|
3 when "10",
|
||||||
7 when "11",
|
7 when "11",
|
||||||
0 when others;
|
0 when others;
|
||||||
|
|
||||||
|
nbDataField_INIT <= to_unsigned(nbDataField_INIT_int, 3);
|
||||||
|
|
||||||
-- nbDataField counter
|
-- nbDataField counter
|
||||||
|
nbDataField_cmp : counter
|
||||||
|
GENERIC MAP(
|
||||||
|
WIDTH => 3,
|
||||||
|
MAX_VAL => 0
|
||||||
|
)
|
||||||
|
PORT MAP(
|
||||||
|
H => H,
|
||||||
|
H_EN => nbData_EN,
|
||||||
|
nRst => nCLR,
|
||||||
|
INIT => nbDataField_INIT,
|
||||||
|
LOAD => nbData_LOAD,
|
||||||
|
upnDown => '0',
|
||||||
|
val => OPEN,
|
||||||
|
max => nbData_0
|
||||||
|
);
|
||||||
|
|
||||||
END ARCHITECTURE arch;
|
END ARCHITECTURE arch;
|
@ -68,10 +68,10 @@ U0 : receptionTrame_op
|
|||||||
n_LOAD => '0',
|
n_LOAD => '0',
|
||||||
n_EN => '0',
|
n_EN => '0',
|
||||||
nbBit_SELECT => '0',
|
nbBit_SELECT => '0',
|
||||||
nbBit_LOAD => '0',
|
nbBit_LOAD => '1',
|
||||||
nbBit_EN => '0',
|
nbBit_EN => '1',
|
||||||
identifier_EN => '0',
|
identifier_EN => '0',
|
||||||
nbData_LOAD => '0',
|
nbData_LOAD => '1',
|
||||||
nbData_EN => '0'
|
nbData_EN => '1'
|
||||||
);
|
);
|
||||||
END ARCHITECTURE arch;
|
END ARCHITECTURE arch;
|
@ -31,7 +31,7 @@ main : PROCESS(H, nRst)
|
|||||||
BEGIN
|
BEGIN
|
||||||
if(nRst = '0') then
|
if(nRst = '0') then
|
||||||
cmp <= to_unsigned(0, WIDTH);
|
cmp <= to_unsigned(0, WIDTH);
|
||||||
elsif(rising_edge(H)) then
|
elsif(rising_edge(H) and H_EN = '1') then
|
||||||
if(LOAD = '1') then
|
if(LOAD = '1') then
|
||||||
cmp <= INIT;
|
cmp <= INIT;
|
||||||
elsif(cmp /= MAX_VAL) then
|
elsif(cmp /= MAX_VAL) then
|
||||||
|
@ -25,7 +25,7 @@ sr: PROCESS(H, nRst)
|
|||||||
BEGIN
|
BEGIN
|
||||||
if(nRst = '0') THEN
|
if(nRst = '0') THEN
|
||||||
data <= (others => '0');
|
data <= (others => '0');
|
||||||
ELSIF(rising_edge(H)) THEN
|
ELSIF(rising_edge(H) and H_EN = '1') THEN
|
||||||
data <= data(WIDTH-2 downto 0) & D;
|
data <= data(WIDTH-2 downto 0) & D;
|
||||||
END IF;
|
END IF;
|
||||||
END PROCESS sr;
|
END PROCESS sr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user