Documentation VHDL Traffic Light (NL)
-
Upload
jelmer-scheper -
Category
Documents
-
view
234 -
download
0
Transcript of Documentation VHDL Traffic Light (NL)
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 1/14
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 2/14
[VHDL]
InhoudsopgaveInleiding..................................................................................................................2
Toestandsdiagram.................................................................................................. 3
Toelichting:..........................................................................................................3
State 0 (S0)......................................................................................................3
State 1 (S1)......................................................................................................3
State 2 (S2)......................................................................................................3
State 3 (S3)......................................................................................................4
State 4 (S4)......................................................................................................4
State 5 (S5)......................................................................................................4
State 6 (S6)......................................................................................................4
De VD! So"rce.....................................................................................................5
De VD! Test #ench...............................................................................................$
Schema%s..............................................................................................................10
&itdraai 'an de sim"latie..................................................................................... 11
oncl"sie..............................................................................................................12
* + Ver,eerslichten 1
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 3/14
[VHDL]
Inleidinget doel 'an de o-dracht as om een 'er,eersregeling te onter-en 'oor een T/
,r"ising. In de o-dracht erd er een d"ideli,e -lattegrond 'rigege'en 'oor een
T/,r"ising.
ig""r 1: Plattegrond van de T-kruising.
Samen met de -lattegrond erden er een aantal 'ooraarden 'astgesteld. Dee
e'atten:
o anneer het nacht is moeten alle lam-en orane ,ni--eren. Indien dit niet
het ge'al is dan dient het oors-ron,eli,e dag-rogramma te gaan draaien.o odra er tenminste 77n "s ordt gemeten dient het 'er,eer o- de
a"toeg stilgelegd te orden.o ls een 'er,eerslicht o- de a"toeg orane ordt dient dee 'er'olgens
rood te orden.o anneer een 'er,eerslicht o- de "saan orane ordt dient dee
'er'olgens oo, rood te orden mits er nog een "s 'olgt.o odra het signaal ordt a8gege'en dat het nacht ordt dienen eerst alle
"ssen a8gehandeld te orden 'oordat het s9steem het nacht-rogramma
gaat draaien.
* + Ver,eerslichten 2
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 4/14
[VHDL]
Toestandsdiagramig""r 2: Toestandsdiagram.
Toelichting:
State 0 (S0)
et -rogramma egint in State 0. In dee state in eide lichten rood.
State (S)
et -rogramma gaat 'an State 0 naar State 1 anneer er geen "s is en het
nacht-rogramma niet aan staat. In dee state staat het a"to licht o- groen en het
"s licht o- rood.
State ! (S!)
odra er een "s ordt gesignaleerd gaat het -rogramma 'an State 1 naar State
2. et a"to licht al naar orane s-ringen en het "s licht al o- rood li'en.
*adat hi in State 2 is geeest gaat het -rogramma ter"g naar State 0.
* + Ver,eerslichten 3
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 5/14
[VHDL]
* + Ver,eerslichten 4
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 6/14
[VHDL]
State " (S")
anneer er een "s gesignaleerd is en het nacht-rogramma niet aan staat al
het -rogramma 'an State 0 naar State 3 gaan. ierdoor al het "s licht naar
groen s-ringen en het a"to licht o- rood li'en.
State # (S#)
ls er geen "s meer ordt gesignaleerd al het -rogramma 'an State 3 naar
State 4 o'ergaan. Dit res"lteert dat het "s licht naar orane gaat en het a"to
licht eer o- rood li8t.
*adat hi in State 4 geeest is en er is nog steeds geen "s gesignaleerd gaat
het -rogramma eer ter"g naar State 1.
ocht er el eer een "s gesignaleerd orden dan al het -rogramma eer
ter"g naar State 3 gaan.
State $ (S$)
anneer het nacht-rogramma in stand ordt geet en er geen "ssen meer in
dan al het -rogramma 'an State 0 naar State 5 gaan. In dee state staan eide
lam-en o- orane.
ls het nacht-rogramma eer "it staat dan gaat hi eer ter"g naar State 0.
State % (S%)
Teril het nacht-rogramma aan staat al het -rogramma steeds 'an State 5
naar State 6 heen en eer s-ringen. In dee state staan eide lichten "it.
ls het nacht-rogramma "it staat gaat hi eer ter"g naar State 5.
* + Ver,eerslichten 5
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 7/14
[VHDL]
De VHDL Source
library IEEE ;use IEEE .Std_Logic_1164.all;
entity busbaan_vhdl is port ( Buslus : in std_logic ; Nacht : in std_logic ; Reset : in std_logic ; Clk : in std_logic ; ROG_Auto : out std_logic_vector (2 downto 0); ROG_Bus : out std_logic_vector (2 downto 0) );end busbaan_vhdl;--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
architecture Stuctue of busbaan_vhdl is
type state is (S0! S"! S2! S#! S$! S%! S&);signal 'esent_state! net_state : state; begin
se: process (Clk! Reset) is
begin
if (Reset * +"+) then
'esent_state ,* S0; elsif rising_edge (Clk) then
'esent_state ,* net_state; end if; end process se;
co-: process ('esent_state! Buslus! Nacht) is begin
case 'esent_state is when S0 * ROG_Auto ,* /"00/; ROG_Bus ,* /"00/; if (Buslus * +"+) then
net_state ,* S#; elsif (Nacht * +"+) then
net_state ,* S%; else
net_state ,* S"; end if;
when S" * ROG_Auto ,* /00"/; ROG_Bus ,* /"00/; if (Buslus * +"+) then
net_state ,* S2; elsif (Nacht * +"+) then
net_state ,* S2; else
net_state ,* S"; end if;
* + Ver,eerslichten 6
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 8/14
[VHDL]
when S2 * ROG_Auto ,* /0"0/; ROG_Bus ,* /"00/; if (Buslus * +"+) then
net_state ,* S0; elsif (Nacht * +"+) then
net_state ,* S0;
else net_state ,* S0; end if;
when S# * ROG_Auto ,* /"00/; ROG_Bus ,* /00"/; if (Buslus * +"+) then
net_state ,* S#; elsif (Nacht * +"+) then
net_state ,* S$; else
net_state ,* S$; end if;
when S$ * ROG_Auto ,* /"00/; ROG_Bus ,* /0"0/; if (Buslus * +"+) then
net_state ,* S#; elsif (Nacht * +"+) then
net_state ,* S0; else
net_state ,* S0; end if;
when S% * ROG_Auto ,* /0"0/; ROG_Bus ,* /0"0/;
if (Buslus * +"+) then net_state ,* S&; elsif (Nacht * +"+) then
net_state ,* S&; else
net_state ,* S0; end if;
when S& * ROG_Auto ,* /000/; ROG_Bus ,* /000/; net_state ,* S%; end case; end process co-;end architecture Stuctue;
--------------------------------------------------------------------------------
* + Ver,eerslichten $
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 9/14
[VHDL]
De VHDL Test &ench
Library IEEE ;Use IEEE .std_logic_1164.all;
Use IEEE .std_logic_textio .all;Use STD .textio .all;------------------------------------------------------------
------------------------------------------------------------
entity estbusbaan_vhdl isend estbusbaan_vhdl;------------------------------------------------------------
------------------------------------------------------------
architecture st1-ulus of estbusbaan_vhdl is file RS34S: TEXT open WRITE_MODE is /esults.tt/; procedure 5R6_RS34S( Buslus: std_logic ; Clk:
std_logic ;
Nacht: std_logic ; Reset: std_logic ; ROG_Auto: std_logic_vector (2 downto 0); ROG_Bus: std_logic_vector (2 downto 0) ) is
variable l_out : line; begin
write(l_out! now! right! "%); write(l_out! Buslus! right! 2); write(l_out! Clk! right! 2); write(l_out! Nacht! right! 2); write(l_out! Reset! right! 2); write(l_out! ROG_Auto! right! $); write(l_out! ROG_Bus! right! $);
writeline(RS34S! l_out); end procedure;
component busbaan_vhdl port ( Buslus: in std_logic ; Clk: in std_logic ; Nacht: in std_logic ; Reset: in std_logic ; ROG_Auto: out std_logic_vector (2 downto 0); ROG_Bus: out std_logic_vector (2 downto 0) ); end component;
signal Buslus: std_logic ; signal Clk: std_logic ; signal Nacht: std_logic ; signal Reset: std_logic ; signal ROG_Auto: std_logic_vector (2 downto 0); signal ROG_Bus: std_logic_vector (2 downto 0);
signal O7: BOOLE! ;
begin
83:busbaan_vhdl port map ( Buslus * Buslus! Clk * Clk! Nacht * Nacht! Reset * Reset!
ROG_Auto * ROG_Auto! ROG_Bus * ROG_Bus );
* + Ver,eerslichten ;
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 10/14
[VHDL]
S69343S0: process begin
Clk ,* +0+; wait for % ns; Clk ,* +"+;
wait for % ns;
end process;
S69343S": process begin
Reset ,* +0+; wait for "0 !S ; Reset ,* +"+; wait for "0 !S ; Reset ,* +0+; wait;
end process;
S69343S2: process begin
O7 ,* TR"E ; Buslus ,* +"+; Nacht ,* +0+;
wait for 20 !S ; -- 20 NS Reset active
-- --------------------------------
wait for "0 ns; -- 30 NS -- S3
if ROG_Auto * /"00/ #nd ROG_Bus * /00"/ then O7 ,* $LSE ; report(/O7 1s alse/);
end if;
Buslus ,* +0+;
wait for 20 ns; -- 50 NS -- S4
if ROG_Auto * /"00/ #nd ROG_Bus * /0"0/ then O7 ,* $LSE ; report(/O7 1s alse/); end if;
Buslus ,* +"+;
wait for "0 ns; -- 60 NS -- S3
if ROG_Auto * /"00/ #nd ROG_Bus * /00"/ then O7 ,* $LSE ; report(/O7 1s alse/); end if;
Buslus ,* +0+;
wait for "0 ns; -- 70 NS -- S4
if ROG_Auto * /"00/ #nd ROG_Bus * /0"0/ then O7 ,* $LSE ; report(/O7 1s alse/); end if;
Buslus ,* +0+;
wait for "0 ns; -- 80 NS -- S0
if ROG_Auto * /"00/ #nd ROG_Bus * /"00/ then O7 ,* $LSE ; report(/O7 1s alse/); end if;
wait for "0 ns; -- 90 NS -- S1
if ROG_Auto * /00"/ #nd ROG_Bus * /"00/ then
* + Ver,eerslichten <
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 11/14
[VHDL]
O7 ,* $LSE ; report(/O7 1s alse/); end if;
Buslus ,* +"+;
wait for "0 ns; -- 100 NS -- S2
if ROG_Auto * /0"0/ #nd ROG_Bus * /"00/ then
O7 ,* $LSE ; report(/O7 1s alse/); end if;
wait for "0 ns; -- 110 NS -- S0
if ROG_Auto * /"00/ #nd ROG_Bus * /"00/ then O7 ,* $LSE ; report(/O7 1s alse/); end if;
Buslus ,* +0+; Nacht ,* +"+;
wait for "0 ns; -- 120 NS -- S5
if ROG_Auto * /0"0/ #nd ROG_Bus * /0"0/ then O7 ,* $LSE ; report(/O7 1s alse/); end if;
wait for "0 ns; -- 130 NS -- S6
if ROG_Auto * /000/ #nd ROG_Bus * /000/ then O7 ,* $LSE ; report(/O7 1s alse/); end if;
wait for "0 ns; -- 140 NS -- S5
if ROG_Auto * /0"0/ #nd ROG_Bus * /0"0/ then O7 ,* $LSE ; report(/O7 1s alse/); end if;
Nacht ,* +0+;
wait for "0 ns; -- 150 NS -- S0
if ROG_Auto * /"00/ #nd ROG_Bus * /"00/ then O7 ,* $LSE ; report(/O7 1s alse/); end if;
wait for 20 ns;
if O7 * %#lse then report(/ est Bench <1n1shed =1th eos /); else
report(/ est Bench <1n1shed =1th no eos /); end if; wait;
end process;
5R6_RS34S( Buslus! Clk! Nacht! Reset! ROG_Auto! ROG_Bus );
end architecture;------------------------------------------------------------
------------------------------------------------------------
* + Ver,eerslichten 10
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 12/14
[VHDL]
Schema's
ig""r
3: Schema met
Hardware &
Elektronica van de
opdracht.
ig""r 4: Schema met Hardware &Software van Clock Devider.
* + Ver,eerslichten 11
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 13/14
[VHDL]
itdraai van de simulatie
ig""r 5: Simulatie van het programma.
o De eginsit"atie is: De #"sl"s is =1% en >?@A#"s en >?@A"to eginnen o-=4% (>ood).
o >?@A#"s ordt =1% (@roen) odra l, =1% ordt.o ?mdat de >eset er in s-ringt orden >?@A#"s en >?@A"to eer =4%
(>ood).o anneer de >eset eg is en l, eer =1% ordt gaat >?@A#"s eer naar
=1% (@roen).o #"sl"s ordt =0%. odra l, eer =1% is ordt >?@A#"s =2% (?rane).o *adat l, eer =1% ordt ,rigt >?@A#"s eer de aarde 'an =4% (>ood).o #"sl"s ordt eer =1%. Bn odra l, eer =1% ordt ,rigt >?@A#"s de
aarde 'an =1% (@roen).o ierna ordt #"sl"s eer =0% en gaat >?@A#"s eer naar =2% (?rane) als
l, =1% ordt.o odra l, eer =1% ordt 'erandert >?@A#"s eer naar =4% (>ood).o ?mdat #"sl"s o- =0% staat ordt >?@A"to =1% (@roen) odra l, eer =1%
ordt.o #"sl"s ordt eer =1% aardoor >?@A"to =2% (?rane) ordt odra l,
eer =1% ordt.o #i de 'olgende l, die =1% ordt 'erandert >?@A"to naar =4% (>ood).o *acht ordt =1% en #"sl"s ordt =0%. odra l, eer =1% ordt orden
>?@A#"s
en >?@A"to =2% (?rane).o odra er eer een l, =1% ordt orden >?@A#"s en >?@A"to =0% (&it).o #i de 'olgende l, die =1% ordt orden >?@A#"s en >?@A"to =2%
(?rane).o *acht ordt eer =0% en i de 'olgende l, die =1% ordt 'eranderen
>?@A#"s en >?@A#"sIn =4% (>ood).
o ?mdat #"sl"s =0% is ordt >?@A"to =1% (@roen) i de 'olgende l, die =1%
ordt.
* + Ver,eerslichten 12
8/19/2019 Documentation VHDL Traffic Light (NL)
http://slidepdf.com/reader/full/documentation-vhdl-traffic-light-nl 14/14
[VHDL]
onclusieet egin 'an het ma,en 'an dee o-dracht as -ittig omdat de o-dracht
com-leCer lee, dan dat het daader,eli, as . Door te ,i,en naar eerdere
o-drachten erd de o-dracht meteen al iets helderder.
?o, het ma,en 'an een toestandsdiagram lee, ma,,eli,er dan gedacht. Dee
hee8t dan oo, heel 'eel moeite es-aard.
8 en toe ,amen er een -aar 8o"tmeldingen naar 'oren aari medest"denten
mi ti-s ga'en hoe i, dee o- o" ,"nnen lossen. Dee 8o"tmeldingen estonden
i'ooreeld "it een =% die een =E% o" moeten orden o8 'an het ger"i, 'an
de termen or en and in de Test #ench.
Dee o-dracht as een "itdaging omdat de sto8 die erin 'erer,t at nog 'ers
as. Desalniettemin as het ontettend leeraam.
* + Ver,eerslichten 13