Documentation VHDL Traffic Light (NL)

14

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