Sequential Statements - PowerPoint PPT Presentation

About This Presentation
Title:

Sequential Statements

Description:

Title: Sequential Statement Author: Marsi Stefano Last modified by: Marsi Stefano Created Date: 8/6/2003 1:24:17 PM Document presentation format – PowerPoint PPT presentation

Number of Views:69
Avg rating:3.0/5.0
Slides: 18
Provided by: Marsi153
Category:

less

Transcript and Presenter's Notes

Title: Sequential Statements


1
Sequential Statements
2
Sequential Statements
  • Il VHDL simula lo svolgersi in parallelo di varie
    operazioni
  • Loggetto fondamentale e il PROCESS
  • Un PROCESS contiene una serie di operazioni
    sequenziali
  • Al suo interno la metodologia di programmazione
    e di tipo sequenziale e pertanto familiare ai
    programmatori
  • Tutte le operazioni racchiuse in un PROCESS
    avvengono in un tempo (tempo di simulazione)
    NULLO
  • I PROCESS sono tra loro concorrenti (operano in
    parallelo)
  • Un PROCESS e un loop infinito e non esce mai
  • Un PROCESS deve contenere unistruzione WAIT o
    una SENSITIVITY LIST (per la sincronizzazione)

3
Sequential Statements (es.)
Entity LOW_HIGH is port (a,b,c in
integer) end architecture BEHAV of LOW_HIGH
is begin L Process variable low integer
0 begin wait on a,b,c if a lt b then
lowa else lowb end if if c lt low then
low c end if end process H
Process variable high integer 0 begin wait
on a,b,c if a gt b then higha else highb
end if if c gt high then high c end if end
process end BEHAV
4
Sequential Statements
  • Le espressioni tipiche di operazioni sequenziali
    sono
  • PROCESS Statement
  • Variable Assignement
  • IF Statement
  • CASE Statement
  • LOOP Statement
  • WAIT Statement
  • NEXT Statement
  • EXIT Statement
  • Subprograms
  • ASSERT

5
PROCESS Statements
  • Sintassi

label process (sensitivity list) subprogra
ms type constant variable other
declaration begin sequential statements end
process label
6
VARIABLE Assignment
  • Sintassi
  • La variabile deve essere dichiarata a priori
  • Deve essere dello stesso tipo dellassegnamento
  • Le variabili sono LOCALI allinterno del PROCESS

target expression
a a b 123.0 c 010010 z x y
7
SIGNAL Assignment
  • Sintassi
  • Lassegnazione di un segnale deve essere
    sincronizzata o tramite un WAIT o con la
    sensitivity list

target lt expression after delay
c lt 1 after 1ns b lt a z lt x y
8
IF Assignment
  • Sintassi
  • Esempio

if condition then seq_statement1 elsif
condition then seq_statement2 else
seq_statement3 end if
if (Z) then TD elsif (Y) then TC elsif (X)
then TB else TA end if
9
CASE Assignment
  • Sintassi
  • Esempio

case expression is when choise_1 gt
seq_of_assign_1 . . . when choise_n gt
seq_of_assign_n end case
case BCD is when 0000 gt LED
1111110 when 0001 gt LED 1100000 . .
. when others gt LED ------- end case
10
CASE Assignment
  • Casi particolari
  • Certi sistemi richiedono esplicito il when
    others! Anche se fisicamente la condizione non
    sara mai raggiunta.

case expression is when c1 gt assign_1 when c2
c3 gt assign_2 when c4 to c9 gt
assign_3 when others gt assign_4 end case
11
LOOP Statement
  • E il modo classico per descrivere cicli
  • Si possono usare sia FOR, WHILE o cicli infiniti
  • I LOOPs possono essere nidificati uno
    nellaltro

Label1 FOR i in 1 to 10 LOOP s1 s2 ...
sn END LOOP i1 Label2 WHILE (i lt 11)
LOOP s1 s2 ... sn i i1 END LOOP
12
LOOP Statement
  • Sebbene il PROCESS sia un LOOP infinito si puo
    evidenziare il loop (per motivi di stile)

process begin initial_statements loop sequenti
al_statement end loop end process
13
NEXT Statement
  • Serve per bypassare una parte di un LOOP
  • Le LABEL servono per identificare univocamente
    il loop in caso di loop annidati

L2 WHILE j lt 20 LOOP L1 FOR i in 1 to 10
LOOP IF (a(i) 0) THEN NEXT L1 END IF q(i)
a(i) END LOOP L1 END LOOP L2
14
EXIT Statement
  • Serve per uscire da un LOOP prima che questo
    abbia raggiunto la sua logica fine

L1 FOR i in 1 to 10 LOOP IF (a(i) 0) THEN
EXIT END IF q(i) a(i) END LOOP L1
15
WAIT Statement
  • Serve per sincronizzare un processo su opportuni
    eventi
  • Ve ne sono 4 tipi
  • WAIT FOR, WAIT UNTIL, WAIT ON e WAIT
  • Sintassi
  • Esempi

wait on signal until condition for time
wait on a,b wait until x gt 10 wait for 10
ns wait
16
ASSERT/REPORT Statement
  • Da usarsi SOLO IN SIMULAZIONE
  • Serve al debugging di un sistema
  • 4 gradi di severity FAILURE, ERROR, WARNING,
    NOTE
  • Sintassi
  • Esempio

assert condition report string severity
expression
assert (x gt 3) report troppo basso severity
WARNING assert (false) report starting sim.
17
PROCEDURE e FUNCTIONS
  • Vengono impiegate per documentare operazioni
    usate frequentemente
  • Si rimanda il lettore a testi specifici
Write a Comment
User Comments (0)
About PowerShow.com