Paras vastaus
Rakennedatan mallinnuksessa digitaaliset suunnittelutoiminnot määritetään komponenttien, kuten invertorin, avulla , MUX, summain, dekooderi, digitaalisen logiikan perusportit jne. Se on kuin yhdistää ja järjestää käytettävissä olevien piirien eri osia etsimiesi toimintojen toteuttamiseksi.
Puolisumman toteutus rakenteiden avulla tietovirran mallinnus: tulo A, B; tuotos summa, kuljettaa; xor (.in1 (A), .in2 (B), .out (summa)); ja (.in1 (A), .in2 (B), .out (kanna));
Käyttäytymistietomallinnusta käytetään kuvaamaan digitaalisten piirien käyttäytymistä. Suunnittelija kuvaa suunnittelun toimivuuden kirjoittamalla algoritmityypin koodin. Sitä käytetään selittämään tietovirta käyttämällä erilaisia loogisia lausekkeita, kuten & (ja), | (tai), ~ (käänteinen), ^ (xor),? (Ehdollinen) jne. … kahta tämän tyyppisen mallinnuksen alaluokkaa. kaavio on jatkuva tiedonkulku ja menettelytietovirta.
1. Jatkuva tietovirta Tämän tyyppisessä tietovirran mallinnuksessa tietojen osoittaminen lähtöihin on jatkuvaa. Tämä toteutetaan käyttämällä Verilogin lausekkeita ” assign ” esimerkin mukaisesti.
syöttö A, B; tuotos summa, kuljettaa; lanka summa, kanna; määritä summa = A ^ B; määritä carry = A & B;
Se on jatkuva määritys ja siten kaikki syötteen muutokset vaikuttavat tulokseen välittömästi, koska ohjaustoimintojen eli herkkyysluettelon puuttuminen. Tässä lähdemuuttuja on määriteltävä tyypiksi ” lanka ”, koska niitä ohjaa jatkuvasti RHS: ssä määritelty digitaalinen logiikka.
2. Menettelydatavirta Tällöin dataosoituksia ei suoriteta jatkuvasti, vaan se tapahtuu tietyissä herkkyysluettelossa määritetyissä tapahtumissa. Tämän tyyppinen mallintamismenetelmä toteutetaan käytännön lohkoilla, kuten ” aina ” tai ” ensimmäinen ”kuten esimerkissä on esitetty.
tulo A, B; tuotos summa, kuljettaa; reg summa, kanna; aina @ (A) alkusumma A + B; kantaa A & B; loppu
Kaikkien lausekkeiden RHS lasketaan jatkuvasti, mutta sen osoittaminen LHS: lle tapahtuu vain missä tahansa muutoksessa tulossa A mutta ei B: ssä. Tässä tapauksessa lähtömuuttujat on määriteltävä muodossa ” reg ” -tyyppi, koska ne pitävät edellisen arvon, kunnes uusi tehtävä tapahtuu minkä tahansa muutoksen jälkeen määritetyssä herkkyysluettelossa.
Toivottavasti tämä poistaa epäilyt.
Vastaus
Tietovirta ja käyttäytyminen eivät sulje pois toisiaan. Tietovirta ja toiminnallinen tai tietovirta ja rakenteellinen eivät myöskään ole. Klassisesti tarkasteltuna ”tietovirta” kuvaa arkkitehtuuria, jossa tietokohteen (muuttujan) arvon muutos laukaisee automaattisesti kaikkien muiden siitä riippuvien tietojen uudelleenlaskennan.
Monet väärin (IMHO) luokittelevat minkä tahansa arkkitehtuurin, jossa datavirtaa hallitaan pikemminkin kuin ohjata vuonhallintaa ”tietovirraksi”; mutta termiä käytetään tällä tavalla riittävän säännöllisesti, jotta se voisi olla vaihtoehtoinen määritelmä.
Käyttäytymissuunnittelua tarkasteltaessa voimme luokitella sen suunnittelulähestymistavaksi, jossa moduuleja mallinnetaan korkealla abstraktiotasolla, missä suunnittelija määrittelee moduulin halutun käyttäytymisen ja synteesityökalut hajottavat sen käyttäytymisen joko RTL- tai rakennemalleiksi. Käyttäytymismallinnuksessa funktio määritellään algoritmisesti, ajoitus ja solmujen lataus jätetään suurelta osin huomiotta. Käyttäytymistä voidaan selvästi mallintaa siten, että klassinen tietovirta otetaan huomioon.
Vähemmän abstrakti on ”RTL” tai ”Register Transfer Logic” -mallinnus. Täällä monet harjoittajat sanovat, että tiedonkulku alkaa. Suurin osa tämän päivän synteesityökaluista hajottaa käyttäytymiskoodin RTL: ksi. Hyvä esimerkki on C (tai C ++) – RTL-työkalut, kuten ImpulseC, Cynthesizer jne. muotoilu mainitaan melkein yksinomaan komponenttinäkökohdina, jotka yhdistävät rekisterit ja johdot.
Selkeä kuin mutaa, eikö?