ma 2 automat celular
DESCRIPTION
automat-celularautomat-celularTRANSCRIPT
-
2015/02/28 17:05 1/4 Tema 2 - Automat celular
AC Wiki - http://elf.cs.pub.ro/ac/wiki/
Tema 2 - Automat celularResponsabili: Alexandra Tincu, Bryan Negrescu, Marina DumitrachelDeadline soft (fr penalizri): 7.12.2014 ora 23:59; Deadline hard: 14.12.2014 ora 23.59lData publicrii: 24.11.2014lData ultimei actualizrii: 24.11.2014, 02:30lIstoric modificri:l
Obiective
Tema are ca scop familiarizarea cu modul de descriere a automatelor cu stri n limbajul Verilog,precum i cu modul de organizare a acceselor la o memorie extern.
Descriere i cerine
Implementai n Verilog un circuit secvenial sincron care simuleaz execuia unui automat celularpentru o lume unidimensional finit cu dimensiunea de 64 de celule. Fiecare celul se poate aflantr-una din dou stri notate cu 0 i, respectiv, 1. Execuia automatului celular const n calculareaunei noi generaii a lumii pe baza unei reguli, pornind de la generaia curent.
Valoarea nou a unei celule se calculeaz doar pe baza valorii curente a celulei i a vecinilor imediaiai acesteia. Pentru calcularea unei noi generaii se folosesc ntotdeauna doar valorile celulelor dingeneraia curent. O regul const n asocierea tuturor configuraiilor posibile pentru cele trei celule(celula din centru i vecinii ei) cu valorea nou a celulei din centru. Pentru aceasta, celulele suntnotate astfel: L - vecin stnga, C - celula din centru, R - vecin dreapta. Celulele aflate la marginealumii se consider c au vecinii ntotdeauna n starea 0. Tab. 1 conine o astfel de regul, denumitregula 110.
Configuraie (L C R) 111 110 101 100 011 010 001 000Valoare nou (C) 0 1 1 0 1 1 1 0
Tab. 1: Regula 110
Prima linie a tabelului conine toate configuraiile posibile ale celor trei celule necesare pentru acalcula o celul din generaia urmtoare. Cea de-a doua linie conine valoarea nou a celulei. Regulapoart numele de 110 deoarece interpretnd a doua linie a tabelului ca un numr binar pe 8 biiobinem: . Alte reguli pot fi obinute uor prin schimbarea valorilor de pe a doualinie a tabelului.
Implementare
-
Last update: 2014/11/24 01:43 teme:tema2 http://elf.cs.pub.ro/ac/wiki/teme/tema2
http://elf.cs.pub.ro/ac/wiki/ Printed on 2015/02/28 17:05
Pentru rezolvarea temei va trebui s implementai ntr-un modul Verilog un automat cu stri carecalculeaz evoluia lumii pentru regula 110. Acest modul trebuie s respecte urmtoarea interfa:
module automaton( input clk, // synchronization signal input [7:0] rule, // next generation rule; only used forbonus points output [5:0] world_cell, // index of cell to be read/written output world_we, // write enable: 0 - cell is read, 1 -cell is written input world_out, // when reading: current cell value inworld output world_in, // when writing: new cell value in world output update_done); // next generation was calculated; mustbe active for 1 clock cycle
Descrierea semnalelor folosite de acest modul este urmtoarea:
clk - semnal de sincronizare cu modulul worldlrule - numrul regulii folosite; folosit doar n cazul bonusului, poate fi ignorat n restlworld_cell - indexul celulei care se dorete a fi citit sau scrislworld_we - write enable: 0 - celula este citit, 1 - celula este scrislworld_out - cnd write enable este 0 conine valoarea curent a celulei citite, ignorat n restlworld_in - cnd write enable este 1 conine valoarea care se dorete a fi scris, ignorat n restlupdate_done - indic faptul c s-a terminat calcularea unei generaii; trebuie s fie activ pentru olsingur perioad de ceas
Este permis modificarea declarrii ieirilor n output reg.
Automatul va interaciona cu lumea prin intermediul semnalelor world_cell, world_we,world_out, world_in. Lumea este reprezentat de un modul Verilog, implementat n tester, careare urmtoarea interfa:
module world( input clk, // synchronization signal input [5:0] cell, // index of cell to be read/written input we, // write enable: 0 - cell is read, 1 -cell is written input in, // when writing: new cell value output out); // when reading: current cell value
Descrierea semnalelor folosite de acest modul este urmtoarea:
clk - semnal de sincronizare cu modulul automatonlcell - indexul celulei care se dorete a fi citit sau scris; este legat la semnalul world_cell allautomatuluiwe - write enable: 0 - celula selectat este citit, 1 - celula selectat este scris; este legat lalsemnalul world_we al automatuluiin - cnd write enable este 1 conine valoarea care se dorete a fi scris, ignorat n rest; este legatlla semnalul world_in al automatului
-
2015/02/28 17:05 3/4 Tema 2 - Automat celular
AC Wiki - http://elf.cs.pub.ro/ac/wiki/
out - cnd write enable este 0 conine valoarea curent a celulei citite, trebuie ignorat n rest; estellegat la semnalul world_out al automatului
Scrierea datelor n interiorul modulului world se face sincron cu frontul cresctor al semnalului deceas i dureaz 1 ciclu de ceas. Astfel, o valoare scris n ciclul curent va putea fi citit n ciclulurmtor.
Ieirea out a modulului world este implementat asincron pentru a v uura proiectarea automatului.Nu abuzai de aceast funcionalitate pentru a citi mai multe valori din world ntr-un singur ciclu deceas (pe negedge sau, mai ru, folosind instruciuni nesintetizabile de ntrziere #1).
Automatul implementat de voi va trebui s conin stri pentru a citi i scrie valori din/n lumeacurent. Citirea se face prin generarea unui index n world_cell i a valori 0 n world_we. n acestmoment modulul world va returna valoarea celulei cu indexul world_cell prin semnalulworld_out. Folosind mai multe astfel de citiri automatul va trebui apoi s calculeze valoarea noupentru o celul. Acea valoare trebuie scris napoi n modulul world prin generarea corect aindexului n semnalul world_cell, stabilirea valorii lui world_we pe 1 i asignarea valorii calculatelui world_in. La terminarea actualizrii tuturor celor 64 de celule ale lumii semnalul update_doneva trebui pus pe 1 timp de un ciclu de ceas pentru a indica finalizarea calculelor. Apoi ciclulautomatului se reia pentru a calcula o nou generaie.
Atenie la suprascrierea celulelor deoarece vei avea nevoie s efectuai calculele cu valorile iniialeale unei generaii, nu cu cele actualizate parial.
Bonus
Pentru bonus va trebui ca automatul vostru s poat primi la intrare numrul regulii care se dorete afi simulat (calculat conform descrierii anterioare), putnd fi astfel folosit pentru a simula evoluiapentru oricare din reguli. Se garanteaz c aceast intrare nu va fi modificat n timpul simulrii.
Notare10 pct: corectitudine.l+2 pct: automatul implementeaz semnalul rule.l-10 pct: folosirea construciilor nesintetizabile din Verilog (while, repeat, for cu numr variabil deliteraii etc.)-1 pct: lipsa fiierului README.l-0.5 pct: pentru fiecare zi de ntrziere; tema poate fi trimis cu maxim 7 zile ntrziere fa deltermenul specificat n enun (fa de deadline-ul soft).-0.2 pct: folosirea incorect a atribuirilor continue (assign), blocante (=) i non-blocante (
-
Last update: 2014/11/24 01:43 teme:tema2 http://elf.cs.pub.ro/ac/wiki/teme/tema2
http://elf.cs.pub.ro/ac/wiki/ Printed on 2015/02/28 17:05
-0.2 pct: diverse alte probleme constatate n implementare (per problem)l
Dac tema primete 0 pe vmchecker, se pot acorda maxim 2pct pe ideea implementrii, la latitudineaasistentului. Ideea i motivele pentru care nu funcioneaz trebuie documentate temeinic n READMEi/sau comentarii. Temele care au erori de compilare vor fi notate cu 0pct.
PrecizriArhiva temei (de tip zip) trebuie s cuprind n rdcina sa (fr alte directoare) doar:l
fiierele surs ale automatului (extensia .v)mfiierul READMEm
Arhiva nu trebuie s conin fiiere de test, fiiere specifice proiectelelor, modulul world etc.lConinutul fiierului README:l
numele, grupa i denumirea temeimprezentarea general a soluiei alesemexplicarea poriunilor complexe ale implementrii (poate fi fcut i n comentarii)malte detalii relevantem
Tema trebuie realizat individual; folosirea de poriuni de cod de la ali colegi sau de pe Internet (culexcepia site-ului de curs) poate fi considerat copiere i va fi penalizat conform regulamentului.Implementarea i testarea va fi fcut folosind mediul de dezvoltare Xilinx ISEl
Testarea se face pe platforma vmchecker.mCheckerul conine deja un modul de top, precum i propriul modul world.m
ResurseScheletlTesterlPDF teml
From:http://elf.cs.pub.ro/ac/wiki/ - AC Wiki
Permanent link:http://elf.cs.pub.ro/ac/wiki/teme/tema2
Last update: 2014/11/24 01:43
Tema 2 - Automat celularObiectiveDescriere i cerineImplementare
BonusNotarePrecizriResurse