DCC_Bit_1 TB
This commit is contained in:
parent
621a211a97
commit
9e78c99990
|
@ -17,7 +17,7 @@ architecture behaviour of dcc_bit_1 is
|
||||||
type state is (idle, out_0, out_1);
|
type state is (idle, out_0, out_1);
|
||||||
signal cs, fs : state;
|
signal cs, fs : state;
|
||||||
signal inc_cpt : std_logic;
|
signal inc_cpt : std_logic;
|
||||||
signal cpt : integer range 0 to 126;
|
signal cpt : integer range 0 to 116;
|
||||||
signal out_value : std_logic := '0';
|
signal out_value : std_logic := '0';
|
||||||
begin
|
begin
|
||||||
dcc_1 <= out_value;
|
dcc_1 <= out_value;
|
||||||
|
@ -25,7 +25,9 @@ begin
|
||||||
--MAE
|
--MAE
|
||||||
process(clk_100MHz, reset)
|
process(clk_100MHz, reset)
|
||||||
begin
|
begin
|
||||||
if reset = '1' then fs <= idle;
|
if reset = '1' then
|
||||||
|
fs <= idle;
|
||||||
|
|
||||||
elsif rising_edge(clk_100MHz) then
|
elsif rising_edge(clk_100MHz) then
|
||||||
|
|
||||||
if cs = idle then
|
if cs = idle then
|
||||||
|
@ -42,15 +44,17 @@ begin
|
||||||
|
|
||||||
out_value <= '0';
|
out_value <= '0';
|
||||||
|
|
||||||
if cpt > 57 then fs <= out_1;
|
if cpt >= 57 then
|
||||||
|
fs <= out_1;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
elsif cs = out_1 then
|
elsif cs = out_1 then
|
||||||
|
|
||||||
out_value <= '1';
|
out_value <= '1';
|
||||||
|
|
||||||
if cpt > 125 then
|
if cpt >= 115 then
|
||||||
fs <= idle;
|
fs <= idle;
|
||||||
|
out_value <= '0';
|
||||||
fin <= '1';
|
fin <= '1';
|
||||||
inc_cpt <= '0';
|
inc_cpt <= '0';
|
||||||
end if;
|
end if;
|
||||||
|
@ -58,7 +62,7 @@ begin
|
||||||
end if;
|
end if;
|
||||||
cs <= fs;
|
cs <= fs;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
end process;
|
end process;
|
||||||
|
|
||||||
--Compteur de Temporisation
|
--Compteur de Temporisation
|
||||||
|
@ -72,10 +76,12 @@ begin
|
||||||
|
|
||||||
if inc_cpt = '1' then
|
if inc_cpt = '1' then
|
||||||
cpt <= cpt + 1;
|
cpt <= cpt + 1;
|
||||||
|
else
|
||||||
|
cpt <= 0;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
end if;
|
end if;
|
||||||
end process;
|
end process;
|
||||||
|
|
||||||
|
|
||||||
end behaviour;
|
end behaviour;
|
||||||
|
|
|
@ -32,12 +32,32 @@ begin
|
||||||
process
|
process
|
||||||
begin
|
begin
|
||||||
reset <= '0';
|
reset <= '0';
|
||||||
|
|
||||||
wait for 20 ns;
|
wait for 20 ns;
|
||||||
go <= '1';
|
|
||||||
wait for 30 ns;
|
for i in 0 to 50 loop
|
||||||
go <= '0';
|
go <= '1';
|
||||||
wait;
|
wait until rising_edge(clk_100MHz);
|
||||||
|
go <= '0';
|
||||||
|
|
||||||
|
assert(dcc_1 = '0') report "dcc_1 invalide avant 58us, est à 1 (test"
|
||||||
|
& integer'image(i) & ")";
|
||||||
|
wait until rising_edge(dcc_1) for 58 us;
|
||||||
|
assert(dcc_1 = '1') report "dcc_1 invalide après 58us, est à 0 (test"
|
||||||
|
& integer'image(i) & ")";
|
||||||
|
wait until falling_edge(dcc_1) for 58 us;
|
||||||
|
assert(dcc_1 = '0') report "dcc_1 invalide après 58us * 2, est à 1 (test"
|
||||||
|
& integer'image(i) & ")";
|
||||||
|
|
||||||
|
--assert(false) report "test" & integer'image(i) severity warning;
|
||||||
|
assert(fin = '1') report "fin invalide, est à 0";
|
||||||
|
|
||||||
|
wait until rising_edge(clk_1MHz);
|
||||||
|
|
||||||
|
end loop;
|
||||||
|
|
||||||
|
assert(false) report "Test DCC_Bit_1 terminé" severity warning;
|
||||||
|
|
||||||
|
wait;
|
||||||
end process;
|
end process;
|
||||||
|
|
||||||
end tb;
|
end tb;
|
||||||
|
|
Loading…
Reference in New Issue