Univeridde Federl de Snt Ctrin Centro Tenológio Deprtmento de Informáti e Ettíti Curo de Grdução em Ciêni d Computção Aul 9-P Derição em VHDL, íntee e imulção de máquin de etdo finito (FSM).. {guntzel, eberle1}@inf.uf.br Et. Do. Eberle Rmbo www.inf.uf.br/~guntzel/ine5406/ine5406.html
O Modelo Bloo Opertivo / Bloo de Controle Entrd (de ddo) Entrd (de ontrole) Bloo Opertivo (dtpth) omndo ttu Bloo de Controle (ontrol) Síd (de ddo) Síd (de ontrole) Slide 9P.2
Projetndo um Sitem Digitl Exemplo 1: Po 1 (ptur do omportmento om FSMD) Detetor de moed CK Reet S.D. (máquin de vend, v. 2) d Menimo de liberção de merdori Reet iniio d 0 totl 0 Entrd: (1 bit), ( bit), ( bit) Síd: d (1 bit) Vriávei intern ou loi: totl ( bit) (totl <) eper (totl <) OBS: em primeir proximção, pode-e umir que d vriável intern é mped pr um regitrdor. liber d 1 um totl totl + Slide 9P.3
Projetndo um Sitem Digitl Exemplo 1: Po 2 (projeto do BO) Reet iniio d 0 totl 0 Ctotl Rtotl totl (totl <) eper (totl <) <? + liber d 1 um totl totl + Convenção: Todo o regitrdore ão denido pelo inl de relógio (k). Entretnto, pr implifir o deenho, o inl de relógio etá omitido. Slide 9P.4
Projetndo um Sitem Digitl Exemplo 1: Po 4 (Derivndo FSM prtir do BO e d FSMD) FSMD Reet Reet k BC (ontrole) Ctotl Rtotl <? totl + Reet FSM iniio d 0 totl 0 d iniio d = 0 Rtotl = 1 (totl <) (totl <) eper () eper liber d 1 um totl totl + liber d = 1 um Ctotl = 1 Slide 9P.5
Projetndo um Sitem Digitl Exemplo 1: Digrm BO/BC Reet k BC (ontrole) Ctotl Rtotl <? totl + d Slide 9P.6
Projetndo um Sitem Digitl Exemplo 1: Projeto do BC FSM Tbel de Trnição de Etdo Reet iniio d = 0 Rtotl = 1 Etdo tul Próximo etdo iníio X X eper eper 0 0 liber eper 0 1 eper () eper eper 1 X um um X X eper liber X X iníio liber d = 1 um Ctotl = 1 Slide 9P.7
Projetndo um Sitem Digitl Exemplo 1: Projeto do BC FSM Tbel de Síd Reet iniio d = 0 Rtotl = 1 Etdo Rtotl Ctotl d iníio 1 0 0 eper 0 0 0 um 0 1 0 liber 0 0 1 eper () liber d = 1 um Ctotl = 1 Importnte: O inl de rg de um regitrdor ó deve etr tivdo (=1) qundo ete for rregdo om um novo vlor! Co ontrário, o inl de rg deve permneer em detivdo (=0). Slide 9P.
Hierrqui d Deriçõe VHDL mquin.vhd Reet k BC (ontrole) Ctotl Rtotl <? totl + d b.vhd bo.vhd regitrdor.vhd omdor.vhd _que.vhd Arquivo VHDL diponívei em http://www.inf.uf.br/~guntzel/ine5406/ul9p/ompletr Slide 9P.9
Bloo Opertivo ENTITY bo IS PORT (lk, Ctotl, Rtotl : IN STD_LOGIC;, : IN STD_LOGIC_VECTOR(7 DOWNTO 0); : OUT STD_LOGIC); END bo; Ctotl Rtotl <? totl + ARCHITECTURE etrutur OF bo IS -- omponent SIGNAL om, totl: STD_LOGIC_VECTOR (7 DOWNTO 0); BEGIN reg: regitrdor PORT MAP (lk, Ctotl, Rtotl, om, totl); om: omdor PORT MAP (totl,, om); men: _que PORT MAP (totl,, ); END etrutur; Slide 9P.10
Regitrdor ENTITY regitrdor IS PORT (lk, rg, reet : IN STD_LOGIC; d : IN STD_LOGIC_VECTOR(7 DOWNTO 0); q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END regitrdor; Ctotl Rtotl ARCHITECTURE etrutur OF regitrdor IS BEGIN PROCESS(lk, reet) BEGIN IF(reet = '1') THEN q <= "00000000"; ELSIF(lk'EVENT AND lk = '1' AND rg = '1') THEN q <= d; END IF; END PROCESS; END etrutur; <? totl + Slide 9P.11
Somdor ENTITY omdor IS PORT (, b : IN STD_LOGIC_VECTOR(7 DOWNTO 0); : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END omdor; Ctotl Rtotl totl ARCHITECTURE etrutur OF omdor IS BEGIN <= + b; END etrutur; <? + Slide 9P.12
Menor_que ENTITY _que IS PORT (, b : IN STD_LOGIC_VECTOR(7 DOWNTO 0); : OUT STD_LOGIC); END _que; Ctotl Rtotl totl ARCHITECTURE etrutur OF _que IS BEGIN <= '1' WHEN A < B ELSE '0'; END etrutur; <? + Slide 9P.13
O Bloo de Controle ENTITY b IS PORT (Reet, lk,, : IN STD_LOGIC; d, Ctotl, Rtotl : OUT STD_LOGIC); END b; ARCHITECTURE etrutur OF b IS TYPE tipo_etdo IS (INICIO, ESPERA, ACUM, LIBERA); SIGNAL etdo: tipo_etdo; BEGIN -- Logi de proximo etdo (e regitrdor de etdo) PROCESS (lk, Reet) BEGIN -- ompletr END PROCESS; -- Logi de id PROCESS (etdo) BEGIN CASE etdo IS -- ompletr END CASE; END PROCESS; END etrutur; Slide 9P.14 Etdo tul Próximo etdo iníio X X eper eper 0 0 liber eper 0 1 eper eper 1 X um um X X eper liber X X iníio Etdo Rtotl Ctotl d iníio 1 0 0 eper 0 0 0 um 0 1 0 liber 0 0 1
Máquin de Vend ENTITY mquin IS PORT (Reet, lk, : IN STD_LOGIC;, : IN STD_LOGIC_VECTOR(7 DOWNTO 0); d : OUT STD_LOGIC); END mquin; ARCHITECTURE etrutur OF mquin IS COMPONENT bo IS -- ompletr END COMPONENT; COMPONENT b IS -- ompletr END COMPONENT; Reet k BC (ontrole) Ctotl Rtotl <? totl + SIGNAL -- ompletr BEGIN -- ompletr END etrutur; d Slide 9P.15
Simulção 1. N pt Meu_doumento, rir um pt om o eu nome (p. ex., Pulo ). N pt Pulo, rir um pt om nome de mquin. 2. Aer o ítio www.inf.uf.br/~guntzel/ine5406/ul9p/ompletr e bixr pr pt o rquivo.vhd 3. Abrir o Qurtu II e rir um projeto n pt mquin, eleionndo mquin.vhd omo toplevel. Eolher o dipoitivo FPGA EP2C35F672C6 e eleionr o ModelSim-Alter omo EDA Simultion Tool. 4. Completr o rquivo b.vhd e mquin.vhd. 5. Compilr o projeto rido. 6. A prtir do Qurtu II, hme o ModelSim-Alter e iniie um imulção om tro ( Gte-level Simultion ). 7. Crie um rquivo de etímulo, nomendo-o etimulo.do. Preprr o etímulo eguindo epeifiçõe d próxim trnprêni. Slide 9P.16
Simulção Form de ond d epeifição (ul teóri): k???? 00110010 01100100 Problem: n ul teóri não form oniderdo vlore rei pr to e tu. (Logo, quel form de ond não ão dequd pr imulção!) Slide 9P.17
Simulção Pr form de ond relit (dequd pr imulção): Eolher um período de relógio mior que o tro rítio do iruito mquin. Exemplo: 10 n Fixr entrd em um vlor, que repreent o preço unitário do item vendido. Por exemplo: 160 (entvo) Simulr equêni de moed endo inerid. Por exemplo: 100, 50, 25 100, 50, 60 Slide 9P.1
Simulção Iníio d Simulção Reet etá tivdo entre t=0 e o meio do ilo de relógio t1-t2 Um moed é inerid entre bord t1 e bord t2 (extmente no meio do ilo de relógio) t=0 T/2 T t0 t1 t2 t3 t4 t5 t6 lk Reet don t re 00110010 (100 em deiml) 10100000 (160 em deiml) Slide 9P.19
Simulção Continução d Simulção Mi du moed ão inerid Entre d du moed, há 5 ilo de relógio T t6 t7 t t9 t10 t11 t12 t13 lk Reet 00110010 00011001 (50 em deiml) 00001100 (25 em deiml) 10100000 (160 em deiml) Slide 9P.20