Utveckling av synkrona digitala integrerade kretsar på nivån för dataöverföringar mellan register ( eng. registeröverföringsnivå , RTL - registeröverföringsnivå ) - en metod för att utveckla synkrona ( eng. ) digitala integrerade kretsar , i vars tillämpning driften av krets beskrivs i form av sekvenser av logiska operationer som appliceras på digitala signaler (data) när de överförs från ett register till ett annat (det beskrivs inte vilka elektroniska komponenter eller vilka logiska grindar kretsen består av). En sådan beskrivning på hög nivå sammanställs på ett av hårdvarubeskrivningsspråken ( eng. hardware description language , HDL ) , till exempel i Verilog eller VHDL , varefter ett speciellt program konverteras till en lågnivåbeskrivning - en graf över logiska element och ledare; transformationsprocessen kallas logisk syntes ( eng. logic synthesis ) eller syntes av logik. Andra program enligt beskrivningen kan kontrollera kretsens korrekta funktion (se logisk simulering ) och kretsens överensstämmelse med kraven (till exempel kraven på kretsens hastighet ( eng. statisk tidsanalys )). Det tredje programmet, med hjälp av en beskrivning på låg nivå, kan placera logiska element och ledare på kretsens yta (för tillverkning av VLSI ) ( engelsk plats och väg ) eller skapa firmware för FPGA .
Synkrona kretsar skapas av två typer av element: register och kombinationslogiska element . Register (vanligtvis implementerade med hjälp av D - vippor ) synkroniserar driften av kretsar på kanterna av klocksignalen och är minnesceller. Kombinationslogiska element utför logiska funktioner och är vanligtvis logiska grindar .
Betrakta den synkrona kretsen som visas i figuren. En växelriktare används som ett element i kombinationslogik . Utgången från registret, indikerad i figuren med bokstaven "Q", är ansluten till ingången "D" (se figur) på registret via en växelriktare. När fronten av klocksignalen uppträder vid ingången "clk" (se fig.), skrivs signalnivån motsatt nivån som registrerats i registret vid föregående cykel till registret.
Att designa en krets i hårdvarubeskrivningsspråk är att designa på en högre abstraktionsnivå än nivån på transistorer (se logikfamiljen ) eller nivån på logiska grindar . Maskinvarubeskrivningsspråket deklarerar register (liknande variabler i datorprogrammeringsspråk ) och beskriver kombinationslogik med hjälp av språkkonstruktioner som "om-då-annat" och aritmetiska operationer (som i datorprogrammeringsspråk). Termen " registeröverföringsnivå " understryker det faktum att data (signaler) överförs mellan register.
Diagrammet som visas i figuren i VHDL-språket kan skrivas på följande sätt:
D <= inte Q ; process ( clk ) börjar om stigande_kant ( clk ) då Q <= D ; sluta om ; avsluta processen ;"D", "Q" och "clk" - registrets ingångar och utgångar (se fig.). "rising_edge" är en funktion som återkommer truenär nivån på den specificerade signalen ändras från låg till hög (det vill säga när kanten på signalen visas).
Programmet Electronics Design Automation (EDA) , som utför logisk syntes , omvandlar koden från hårdvarubeskrivningsspråket till den information som krävs för att skapa en hårdvaruimplementering av kretsen (vanligtvis en lista över logiska grindar och anslutningarna mellan dem (se nätlista )) , och sparar den i en fil. En sådan fil kan skickas till ingången av ett program som är utformat för att skapa integrerade kretsar för speciella ändamål (ASIC) (se placering och routing ), eller ett program som är utformat för att skapa firmware för fältprogrammerbara gate arrays (FPGA) . Ett program som utför logisk syntes kan också optimera en krets (se logikoptimering ).
Beroende på närvaron eller frånvaron av register i kretsen, vars utgångar är anslutna till deras ingångar, är kretsarna uppdelade i två typer: