Hardwarová implementace Petriho sítí
-
Upload
travis-travis -
Category
Documents
-
view
32 -
download
0
description
Transcript of Hardwarová implementace Petriho sítí
Hardwarová implementace Hardwarová implementace Petriho sítíPetriho sítí
Vlastní HW implementace a syntézaVlastní HW implementace a syntéza
Shrnutí minulého projektuShrnutí minulého projektu
• Implementace z matice propojení• Nevhodné s ohledem na designCPN• Umožňuje pouze jednobarevné sítě• Neumožňuje násobné hrany• Vlastní HW implementace nejde přeložit a tudíž ani
implementovat
Naše koncepce HW Naše koncepce HW implementaceimplementace
• Implementovat každý blok Petriho sítě jako component a přeložit výstup designCPN
• Optimalizaci provede návrhový systém• Umožňuje implementovat barevné sítě, stačí podle
potřeb upravit přechody• Umožňuje libovolný počet násobných hran, vše je
navrženo obecně pomocí generic
in_width
out_width
clk
res
input_net output_net
output_wr
•Lze specifikovat šířky portů
•Plně synchronní
•Lze specifikovat maximální počet tokenů
•Počet tokenů = vstup – výstup
•Lze specifikovat počáteční hodnotu
Jeden stav Petriho sítě, blok pn_stateJeden stav Petriho sítě, blok pn_state
Přechod Petriho sítě, blok pn_exchangePřechod Petriho sítě, blok pn_exchange
input_net
input_wr
input_width
ready
fire
output_net
output_width
•Pokud jsou všechny vstupy aktivní, ready bude 1
•Tento součin lze velmi snadno vyměnit za jiné hradlo a tak změnit funkci sítě
•Pokud bude fire aktivní, pošle se 1 na všechny výstupy a tak dojde k přechodu
Výsledky syntézyVýsledky syntézy
Blok Func. Gen FG Func. Gen H DFF
exchange(2,2) 1 0 0
exchange(2,5) 1 1 0
state(2,2,4) 10 3 4
state(3,2,4) 11 2 4
state(4,2,4) 17 5 4
state(2,3,4) 10 2 4
•Použit nástroj Leonardo Spectrum
•Počet dff závisí na šířce registru uvnitř
Testovací síťTestovací síť
•Přesný přepis sítě pomocí component
•Postupné očíslování přechodů a stavů, propojovací vodiče označeny podle koncových prvků
•Nástroj Xillinx Foundation měl potíže se syntézou kvůli velkému počtu generic proměnných
Generátor náhodných číselGenerátor náhodných čísel•Náhodné číslo je generováno 16bitovým polynomem
•V okamžiku, kdy je potřeba nová volba se přenese hodnota do čítače, a ten provede „rozpočítání“ mezi aktivní vodiče
•Volba trvá proměnný počet taktů
•K dispozici je i behaviorální model, kde volba trvá jeden takt
•Mimo obvyklé porty obsahuje i port clk_en na zpoždění hodin
Top level návrh
fire[1:5]
clk_en
save_LED
set
=0
slow
ready[1:5]
test_pn
selector
LED_decoder
LED_ctrl[6:0]
•slow – zpomalující čítač
•selector – random generator
•LED-decoder – výstup na LED
•test_pn - vlastní síť
Průběh výpočtuPrůběh výpočtuclk
clk_en
save_LED
slow
Naplnění čítače
0 0
Výpočet je zpožděnVýpočet probíhá
ZávěrZávěr
• Vytvořili jsme funkční implementaci Petriho sítě vhodnou pro překlad
• Tuto síť jsme implementovali v pokusné aplikaci• Další předpokládaná práce je tvorba překladače