Hvad er forskellen mellem adfærdsmæssig og strukturel kode i VHDL?


Svar 1:

Adfærdsmæssig VHDL-kode er for brugerne at fortælle synthesizere (Xilinx ISE, Quartus II, RTL-compiler osv.) Om at syntetisere uanset hvilke digitale logiske kredsløb der skal udføre en bestemt funktion i henhold til den opførsel, der er skrevet i koden. Syntetisatorerne vil således bestemme, hvordan kredsløbet ser ud ud fra kodens opførsel, og brugerne kun bryder sig om kodens funktionalitet.

På den anden side er strukturel kode for brugerne at fortælle synthesizere om at syntetisere nøjagtigt det kredsløb, de ønskede og designet. Således kan brugerne have total kontrol over, hvordan kredsløbet ser ud til at udføre den funktion, de ønsker. Ved at bruge strukturel kode vil brugerne tage sig af ikke kun funktionalitet, men også strukturen af ​​kredsløbene til yderligere optimeringer (Hastighed, områder osv.).

For eksempel vil du implementere en tilføjelse af 2 tal A og B. Brug af adfærdskode, bare skriv: S <= A + B; Derefter syntetiserer eller vælger de strukturer, der skal udføres tilføjelsen. Det kan være normale serielle tilføjere eller hvad som helst til den udførte tilføjelse. Ved hjælp af strukturel kode vil du designe den struktur, du vil anvende til at udføre tilføjelsen. For at forbedre hastigheden for addereren designer du f.eks. En Carry-blik fremad for Adder, og derefter skriver du den strukturelle kode for det.

Kontroller det fulde eksempel på adfærdsmæssig og strukturel VHDL for en fuld adder: VHDL-kode for fuld adder


Svar 2:

Strukturkode i enhver HDL er de ting, der beskriver ting som ledninger og fysiske ting. Den adfærdskode bruges til at beskrive modeller af ting, der er forbundet mellem ledningerne.

Der er en lille overlapning i Verilog, fordi adfærdskoden for primitive elementer er i C og indbygget i simulatoren, og UDP'er er en enklere borddrevet version af adfærdskode.