RENESAS ForgeFPGA Software Simulaasje
Wichtige ynformaasje
Simulaasje is in technyk foar it tapassen fan ferskate ynfierstimulus oan it ûntwerp op ferskate tiden om te kontrolearjen oft de RTL-koade de bedoelde manier gedraacht. It wurdt brûkt om de robuustheid fan it ûntwerp te kontrolearjen. Simulaasje lit de brûker om view de timing diagram fan de besibbe sinjalen te begripen hoe't it ûntwerp beskriuwing yn it ûntwerp file gedraacht.
Testbenches binne stikken koade dy't wurde brûkt foar simulaasje. In ienfâldige testbank sil de Unit Under Test (UUT) ynstantiearje en de ynfier driuwt. Go Configure-software brûkt Icarus Verilog (iVerilog) en GTKWave om de simulaasjegolffoarmen te observearjen mei de stimulus levere yn 'e testbank.
Dit dokumint beskriuwt de stappen dy't moatte wurde nommen by it ynstallearjen fan Icarus op jo systeem en hoe't jo in suksesfolle simulaasje útfiere.
Ynstallearje Icarus Verilog
a. Ynstallearje de lêste ferzje fan Icarus Verilog (IVerilog) fan https://bleyer.org/icarus/
b. Wês wis dat jo IVerilog tafoegje oan it PATH en lit it GTKWave ynstallearje (sjoch figuer 1)
c. Iepenje de Go Configure Software en selektearje it diel: SLG47910 (Rev BB) om de Forge Workshop te iepenjen (sjoch figuer 2).
d. Klikje op de FPGA-bewurker yn 'e midden fan' e arkbalke oan 'e boppekant of brûker kin ek dûbelklikke op' e FPGA Core-struktuer yn 'e midden fan it finster.
e. In nij finster iepenet mei de namme Forge Workshop. Klikje yn 'e menu-arkbalke boppe op Opsjes → Ynstellings. Gean yn it dialoochfinster Ynstellings nei Tools ûnder it tabblêd Brûkerynstellingen. Untselektearje it fakje Brûk "systeemomjouwing" foar sawol Icarus Verilog as GTKWave. Foegje it paad ta nei Iverilog en GTKWave bewarre yn jo systeem yn 'e opjûne romte (sjoch figuer 4).
Jo binne allegear ynsteld om in testbank te simulearjen en de boppesteande stappen soargje derfoar dat de GTKWave automatysk lanseart by it simulearjen fan in testbank op Go Configure software.
Testbank
De meast krúsjale stap yn it suksesfolle ymplemintaasje fan elk systeem is om it ûntwerp en syn funksjonaliteit te ferifiearjen. It ferifiearjen fan in kompleks systeem nei it ymplementearjen fan de hardware is gjin wize kar. It is net effektyf yn termen fan jild, tiid en middels. Dêrom wurdt yn it gefal fan FPGA in testbank brûkt om de Verilog-boarnekoade te testen.
Stel dat wy hawwe in ynfier dat is fan 11 bits, en wy wolle testen it apparaat foar alle mooglike ynfier kombinaasje wearden ie (211). Om't dit in heul grut oantal kombinaasjes is, is it ûnmooglik om it mei de hân te testen. Yn sokke gefallen binne testbanken heul nuttich, om't jo it ûntwerp automatysk kinne testen foar alle mooglike wearden en dus de betrouberens fan it testûntwerp befêstigje. Verilog Testbenches wurde brûkt om ûntwerpen te simulearjen en te analysearjen sûnder de needsaak foar ien fysyk hardware-apparaat.
In ûntwerp ûnder test, ôfkoarte as DUT, is in synthesizeable module fan 'e funksjonaliteit dy't wy testje wolle. Mei oare wurden, it is it circuitûntwerp dat wy wolle testen. Wy kinne ús DUT beskriuwe mei ien fan 'e trije modellearstilen yn Verilog - Gate-nivo, Dataflow, of Behavioral.
In testbank is net synthesizeber, dêrom wurdt it allinich brûkt foar simulaasjedoelen. Dit lit de brûker in folslein oanbod fan Verilog-konstruksjes brûke, bygelyks kaaiwurden lykas "foar", "$display" en "$monitor" ensfh. foar it skriuwen fan testbanken. In ienfâldige testbank sil de Unit Under Test (UUT) of Device Under Test (DUT) ynstantearje en ynputen ride.
In Testbench begripe
Tiidskaal Definysje yn Testbench
By it simulearjen moat de software witte hoe't de tiid is definiearre. De fertraging ienheid wurdt oantsjutte mei help fan de 'tiidskaal rjochtline, dy't spesifisearret de tiid ienheid en de krektens foar de modules dy't folgje it. De `tiidskaal helpt by it bepalen fan wat #1 betsjut yn termen fan tiid. # wurdt brûkt om de fertraging te definiearjen dy't yn it systeem ynfierd wurde moat yn oerienstimming mei tiidienheid spesifisearre yn tiidskaal. Dus, #1 betsjut 1 ns fertraging as de time_unit yn ns is.
Syntaksis:
`tiidskaal / /
time_unit is de tiid dy't in fertraging fan #1 fertsjintwurdiget. De time_precision basis stiet foar hoefolle desimale punten fan presyzje te brûken relatyf oan de tiid ienheden. (Sjoch rigel 23 yn figuer 5)
Wy kinne de tiidskaalkonstruksjes brûke om ferskate tiidienheden yn itselde ûntwerp te brûken. De brûker moat betinke dat fertraging spesifikaasjes binne net synthesizable en kin net wurde omboud ta hardware logika. De fertragingsfunksjes binne folslein foar simulaasjedoelen. $tiid en $realtime systeemfunksjes jouwe de aktuele tiid werom en it standert rapportaazjeformaat kin feroare wurde mei in oare systeemtaak $timeformat.
Example:
'tiidskaal 10us/100ns
'tiidskaal 1ns/1ps
#10 weromsette = 1; // fertragt it sinjaal mei 10 ns
#0.49 $display(“T = %0t op tiid #0.49”, $realtime);
De oantsjutte fertraging is #0.49 wat minder is as de heale ienheidstiid. De tiidprecision wurdt lykwols spesifisearre om 1ps te wêzen en dêrtroch kin de simulator net lytser gean dan 1ns, wat makket dat it de opjûne fertragingsstelling rûn en 0ns opbringt. Dat, dizze ferklearring jout gjin fertraging.
Simulaasjelog:
T = 1 op tiid #0.49
Module Ferklearring
Module-ferklearring yn elke testbank is oars as de wichtichste Verilog-koade. Yn in testbank wurdt de module ferklearre sûnder terminalhavens tegearre mei. (Sjoch rigel 25 yn figuer 5)
Syntaksis:
module ;
De module-ferklearring wurdt folge troch it definiearjen fan de ynfier- en útfiersinjalen earder definieare yn it haadûntwerp file.
Wy brûke twa sinjaaltypen foar it riden en kontrolearjen fan sinjalen tidens de simulaasje. It reg datatype sil de wearde hâlde oant der in nije wearde oan wurdt tawiisd. Dit datatype kin allinich in wearde wurde tawiisd yn altyd of begjinblok.
It draaddatatype is as dat fan in fysike ferbining. It sil de wearde hâlde dy't wurdt dreaun troch in haven, tawize statement, of reg. Dit gegevenstype kin net brûkt wurde yn in earste of altyd blok. Elke parameter en deklaraasje fan heule getal wurde ek dien yn dizze seksje.
Example:
Reg a,b; // de ynfier yn de HDL koade wurdt definiearre as reg yn testbench
Wire y; // útfier sinjaal yn HDL wurdt definiearre as tried yn testbench
DUT Instantiation
It doel fan in testbank is om te kontrolearjen oft ús DUT-module wurket. Dêrom moatte wy ús ûntwerpmodule ynstantiearje om module te testen.
Syntaksis:
(. (sinjaal 1), . sinjaal1>(sinjaal2));
Example:
ALU d0 (.a(a), // sinjaal "a" yn ALU moat ferbûn wurde mei "a" yn ALU_tb module
.b(b), // sinjaal "b" yn ALU moat ferbûn wurde mei "b" yn ALU_tb module
.c (c));// sinjaal "c" yn ALU moat wurde ferbûn mei "c" yn ALU_tb module
Wy hawwe de DUT-module ALU instantiearre nei de testmodule. De eksimplaarnamme (d0) is de kar fan de brûker. De sinjalen mei in perioade "." foar harren binne de nammen foar de sinjalen binnen de ALU module, wylst de tried of reg se ferbine mei yn de test bank is neist it sinjaal tusken heakjes (). It is oan te rieden om elke poarteferbining yn in aparte rigel te kodearjen, sadat elk kompilaasjeflaterberjocht korrekt sil wize op it linenûmer wêr't de flater barde. Om't dizze ferbinings mei namme makke wurde, is de folchoarder wêryn't se ferskine net relevant.
DUT-ynstantiaasje kin ek makke wurde foar de modules wêr't de testbench-module ferskate sinjaalnammen hat. De juste mapping fan 'e sinjalen is wat wichtich is by it ynstantiearjen.
Example:
ALU d0 (.a(A), // sinjaal "a" yn ALU moat ferbûn wurde mei "A" yn ALU_tb module
.clk (klok), // sinjaal "clk" yn ALU moat wurde ferbûn oan "klok" ALU_tb module
.out(OUT)); // sinjaal "út" yn ALU moatte wurde ferbûn oan "OUT" yn ALU_tb module
Altyd & inisjele blok yn in testbank
D'r binne twa opienfolgjende blokken yn Verilog, initial en altyd. It is yn dizze blokken dat wy de stimulus tapasse.
Inisjele blok
It earste blok dat mar ien kear wurdt útfierd en beëinige as de lêste rigel fan it blok wurdt útfierd. De stimulus wurdt skreaun yn it earste blok. (Sjoch rigel 54-72 yn figuer 5)
Syntaksis:
..
earste begjinne
$dumpfile();
$dumpvars();
..(stimulus ynfiere)
ein
de earste blok begjint syn útfiering oan it begjin fan de simulaasje op tiid t = 0. Begjinnend mei de earste rigel tusken it begjin en ein, útfiert eltse rigel fan boppen nei ûnderen oant in fertraging wurdt berikt. As de fertraging wurdt berikt, wachtet de útfiering fan dit blok oant de fertraging tiid (10-time units) is foarby en dan pakt útfiering wer.
Brûker kin stimuli definiearje mei loops (foar, wylst, as-oars) ek binnen dit earste blok ynstee fan alle kombinaasjes manuell yn te fieren.
Example:
Initial Begjin
A = 0; b = 0; // útfiering begjinne
#10 a = 0; b = 1; // útfiering is op t = 10-ienheid tiid
#10 a = 1; b = 0; // útfiering is op t = 20-ienheid tiid
ein
Dump Files
In oar ding om yn gedachten te hâlden is de deklaraasje fan $dumpfiles en $dumpvars binnen it earste blok (sjoch rigel 55- 56 yn figuer 5). De $dumpfile wurdt brûkt om de feroarings yn 'e wearden fan netten en registers te dumpen yn in file dat wurdt neamd as syn argumint.
Bygelyksample:
$dumpfile("alu_tb.vcd");
sil dump de feroarings yn in file neamd alu_tb.vcd. De feroarings wurde opnommen yn in file neamd VCD file dat stiet foar wearde feroaring dump. In VCD (wearde feroaring dump) bewarret alle ynformaasje oer wearde feroarings. Wy kinne net mear as ien $dump hawwefile útspraken yn Verilog simulaasje.
De $dumpvars wurdt brûkt om oan te jaan hokker fariabelen moatte wurde dumpt (yn de file neamd troch $ dumpfile). De ienfâldichste manier om it te brûken is sûnder argumint. De algemiene syntaksis fan 'e $dumpvars is
$dumpvars ( <, >);
Wy kinne yn prinsipe oantsjutte hokker modules, en hokker fariabelen yn modules sille wurde dumpt. De ienfâldichste manier om dit te brûken is om it nivo op 0 te setten en de modulenamme as de topmodule (typysk de boppeste testbench-module).
$dumpvars(0, alu_tb);
As it nivo is ynsteld op 0, en allinich de modulenamme is oantsjutte, dumpt it ALLE fariabelen fan dy module en alle fariabelen yn ALLE modules op legere nivo dy't troch dizze topmodule instantiearre binne. As ien module net ynstantiearre wurdt troch dizze topmodule, dan sil syn fariabele net wurde behannele. Noch ien ding, de ferklearring fan $dumpfile moat foar de $dumpvars komme as in oare systeemtaken dy't dump spesifisearret. Dizze dumpen files moatte wurde ferklearre foar de stimulus inputs oars, gjin wearde wurdt bewarre yn dizze dump files.
Altyd blokkearje
Yn tsjinstelling ta de earste útspraken wurdt in altyd blok werhelle, hoewol de útfiering begjint op tiid t = 0.ample, de klok sinjaal is essinsjeel foar de wurking fan sekwinsjele circuits lykas Flip-flops. It moat kontinu oanfierd wurde. Hjirtroch kinne wy de koade foar wurking fan 'e klok yn in testbank skriuwe as (sjoch rigel 52 yn figuer 5):
altyd
#10 clk = ~clk;
einmodule
De boppesteande ferklearring wurdt útfierd nei 10 ns begjinnend fan t = 0. De wearde fan 'e clk sil nei 10 ns omkeard wurde fan 'e foarige wearde. Sa, it generearjen fan in klok sinjaal fan 20 ns puls breedte. Dêrom genereart dizze ferklearring in sinjaal fan frekwinsje 50 MHz. It is wichtich om te notearjen dat de inisjalisaasje fan it sinjaal wurdt dien foar it altyd blokje. As wy it inisjalisaasjediel net dogge, sil it clk-sinjaal x wêze fan t - 0, en nei 10 ns sil it omkeard wurde nei in oare x.
Self-Checking Testbench
In selskontrôle testbank omfettet in ferklearring om de hjoeddeistige steat te kontrolearjen.
- $skerm systeemtaak wurde benammen brûkt om debug-berjochten te werjaan om de stream fan simulaasje te folgjen
earste begjinne
A = 0 ; b = 0 ; c = 0; #10; // ynfier ynfier, wachtsje
if(y ! == 1) begjinne
$display(“000 mislearre”); //kontrôle
c = 1; #10 ; // ynfier tapasse, wachtsje
ein
oars as (y! == 0) begjinne
$display(“001 mislearre”) // check
b = 1; c = 0; #10 ; ein
oars as(y!==0)
$display ("010 mislearre"); //kontrôle
ein
einmodule
$skerm wurdt brûkt foar it werjaan fan wearden fan fariabelen, stringen of útdrukkingen. Fan boppesteande eksample, as ien fan 'e if-else-lus tefreden is, dan sil it simulatorlog syn respektive $ sjen litteskerm ferklearring. D'r is standert in nije rigel oan 'e ein fan' e snaren.
$skerm ("tiid = %t, A = %b, B = %b, C = % b", $tiid, A, B, C);
De karakters neamd yn 'e sitaten sille wurde printe sa't se binne. De letter tegearre mei % jout it tekenrigeformaat oan. Wy brûke %b om binêre gegevens foar te stellen. Wy kinne %d, %h, %o brûke foar respektivelik desimaal, heksadesimaal en oktaal foar te stellen. De %g wurdt brûkt foar it útdrukken fan echte getallen. Dizze wurde ferfongen troch de wearden bûten de offerte yn 'e neamde folchoarder. Bygelyksample, de boppesteande ferklearring sil werjûn wurde yn it simulaasjelog as: tiid = 20, A = 0, B = 1, C = 0
Tafel 1. Verilog Table Formats
Argumint | Beskriuwing |
%h, %H | Werjaan yn hexadesimale opmaak |
%d, %D | Werjaan yn desimale foarm |
%b, %B | Display yn binêre opmaak |
%m, %M | Hiërargyske namme werjaan |
%s, %S | Lit sjen as tekenrige |
%t, %T | Display yn tiidformaat |
%f, %F | Toan 'echt' yn desimaal formaat |
%e, %E | Toan 'echt' yn in eksponinsjele opmaak |
$skerm printet benammen de gegevens of fariabele sa't it is op dat stuit fan dy tiid lykas de printf yn C. Wy moatte neame $skerm foar hokker tekst wy moatte view yn de simulaasje log.
- $tiid
$tiid is in systeemtaak dy't de hjoeddeistige tiid fan 'e simulaasje werombringt.
- $monitor
$monitor sil de gegevens of fariabele kontrolearje wêrfoar it is skreaun en as de fariabele feroaret, sil it printsje
de feroare wearde. It berikt in ferlykber effekt fan it oproppen fan $display nei elke kear as ien fan syn arguminten krije
bywurke. $monitor is as in taak dy't wurdt spawned om te rinnen op 'e eftergrûn fan' e haadthread dy't kontrolearret en
toant wearde feroarings fan syn argumint fariabelen. $monitor hat deselde syntaksis as $skerm.
$monitor("tiid = %t, A = %b, B = %b, C = % b", $tiid, A, B, C);
Fan figuer 7 kinne jo observearje dat nije rigels fan koades binne tafoege om de testbank sels te evaluearjen. It pleatsen fan de $skerm en $monitor útspraken yn ferskate seksjes fan 'e testbank sille ferskate resultaten opleverje (sjoch figuer 8). $tiid neamd yn dizze útspraken printsje de tiid wêrop de wearde wurdt printe foar. Tagelyk ienheid sizze 170000, kinne wy sjen hoe't der in ferskil is yn 'e wearde foar A en B troch de $skerm en $monitor útspraken.
GTKVave Software
GTKWave is in folslein featured GTK + golf viewer foar Unix, Win32, en Mac OSX dy't LXT, LXT2, VZT, FST en GHW lêst files likegoed as standert VCD / EVCD files en lit harren viewing. Syn offisjele website is by http://gtkwave.sourceforge.net/ . GTKVave is de oanrikkemandearre viewer troch Icarus Verilog simulaasje ark.
Sadree't de brûker mei súkses in testbank hat makke om de funksjonaliteit fan it ûntwerp te testen, kin de brûker no de GTKWave-software brûke om view de golffoarmen.
Om de GTKVave-software te starten nei view de golffoarmen, de brûker moat klikke op Simulearje Testbench knop boppe oan 'e arkbalke of út it haadmenu Tools → Simulaasje → Simulearje Testbench. As d'r gjin syntaksisflaters binne, ôfhinklik fan it ûntwerp, moat de GTKWave automatysk wurde lansearre as de resultaten fan 'e stimuli yn' e testbank sille wurde werjûn yn 'e Logger-seksje fan it finster.
De GTKWave-software iepenet de .vcd-formaatdumpfile automatysk. It GTKWave-finster toant de golffoarm net as it iepenet. Dit jout de brûker in kâns om te selektearjen hokker sinjalen hy wol view en observearje. Om it sinjaal te kiezen, moat de brûker werjaan, de brûker moat klikke op de namme fan har module / eksimplaar oan 'e lofterkant fan it finster ûnder it ljepblêd SST. Troch op de + fan elke eksimplaar te klikken, kinne jo de sinjalen sjen dy't relatearre binne mei dat eksimplaar yn 'e ûnderste seksje. Dan kinne jo it winske sinjaal slepe en droppe of dûbelklikke om te werjaan yn it sinjalenfinster. Jo kinne ek selektearje alles (CTRL + A) en ynfoegje se oan de sinjalen finster (sjoch figuer 9).
De sinjalen wurde no tafoege oan it sinjaalfinster, mar it moat noch simulearre wurde. Nei it tafoegjen fan de winske sinjalen oan it sinjaalfinster, klikje op om de sinjalen oan 'e hjoeddeistige breedte fan it finster te passen en dan de sinjalen fan' e opnij laden
symboal oanwêzich op de arkbalke. Jo kinne no de sinjalen sjen mei har respektive wearden.
Sinjaal Wearden
Standert binne de wearden fan 'e sinjalen yn heksadesimale opmaak en alle weagen binne grien kleurd (as goed rinne).
Brûker kin feroarje de eigenskippen fan dizze sinjaal troch rjochts-klikke op it sinjaal en te kiezen Data Format of Kleur Format. Brûker kin ek in leech sinjaal ynfoegje om seksjes te meitsjen tusken groep sinjalen. As jo it winske optyske resultaat hawwe, kinne jo jo konfiguraasjes bewarje troch te gean File → Skriuw Bewarje File.
GTKVave Arkbalke
De arkbalke (sjoch figuer 10) lit de brûker basisfunksjes útfiere foar it sinjaal. Lit ús elke opsje besprekke op 'e arkbalke fan links nei rjochts.
- Menu opsjes: Under dizze opsje kinne wy view alle ferskate funksjes fan 'e software dy't brûkt wurde kinne om mei de software te spyljen. De details ûnder dizze menu-opsje wurde behannele ûnder seksje 8 fan dizze brûkershantlieding.
- Spoaren snije: It wurdt brûkt om te wiskjen / snije it selektearje sinjaal út it sinjaal finster
- Spoaren kopiearje: It wurdt brûkt om it selektearre sinjaal út it sinjaalfinster te kopiearjen
- Spoaren plakke: De kopiearre / snije spoar kin plakke op in oare lokaasje yn it sinjaal finster
- Zoom Fit: It wurdt brûkt om de sinjalen oan te passen neffens de grutte fan it finster dat de brûker kiest te werjaan
- Zoom yn: It wurdt brûkt om yn te zoomjen yn it sinjaalfinster
- Zoom Out: It wurdt brûkt om it sinjaalfinster út te zoomjen
- Zoom Undo: it wurdt brûkt om de yn-/útzoom op it sinjaalfinster ûngedien te meitsjen
- Zoom nei Start: dit sil it sinjaalfinster ynzoome, de starttiid fan 'e sinjalen werjaan.
- Zoom nei ein: dit sil it sinjaalfinster ynzoome mei de eintiid fan 'e sinjalen
- Fine foarige râne: Dit ferpleatst de marker nei de lofterkant dy't de foarige râne oanjout
- Fine folgjende râne: Dit ferpleatst de marker nei rjochts en jout de folgjende râne oan
- Scroll legere / boppeste bond: hjirmei kinne wy it tiidframe ynstelle wêryn de brûker werjaan wol. Bygelyksample, wy kinne it tiidframe ynstelle op 0 sek oant 500 ns, it sil allinich de sinjalen werjaan ûnder dy doer.
- Reload: It opnij laden wurdt yndrukt as der in feroaring is yn it werjûn sinjaal. It sil it sinjaal opnij laden en werjaan neffens de nije parameters. Bygelyksample, neidat it feroarjen fan de tiid frame fan it sinjaal, wy moatte opnij laden it sinjaal te werjaan it sinjaal yn de nije set tiid frame.
Menu opsjes
Fanút de linker boppeste hoeke fan 'e GTKWave-software kin brûker tagong krije ta de menu-opsjes troch te klikken op de trije fertikale rigels (sjoch figuer 11). De brûker kin de folgjende opsjes fine ûnder de Menu-opsjes:
File
De File submenu befettet ferskate items yn ferbân mei tagong files, ymportearjen-eksportearjen VCD files, printsjen, en lêzen / skriuwen files en útgean.
Bewurkje
It submenu Bewurkje wurdt brûkt om ferskate nutsfunksjes út te fieren, lykas it feroarjen fan de gegevensfertsjintwurdiging fan wearden yn it wave-subfinster. Mei de opsjes ûnder it submenu Bewurkje kin de brûker it gegevensformaat fan 'e sinjalen wizigje, se opnij regelje, ferpleatse, trimme it, markearje, groepearje sinjalen, kommentaar oer sinjalen, feroarje de kleur fan' e sinjalen, ensfh.
Sykje
It submenu Sykje wurdt brûkt om sykopdrachten út te fieren op netnammen en wearden. It helpt om funksjes út te fieren op ferskate hiërargynivo's fan 'e sinjalen en eksimplaren yn' e VCD file.
Tiid
It tiidsubmenu befettet in superset fan 'e funksjes útfierd troch de knoppen Navigaasje en Statuspaniel.
It makket ienfâldige, tiidrelatearre funksjes mooglik lykas zoomjen, ferpleatse nei in bepaald tiidpunt, it sinjaal yn in bepaalde rjochting ferpleatse, ensfh.
Marker
It submenu foar markearring wurdt brûkt om ferskate manipulaasjes op 'e marker út te fieren en ek it rôljen fan it skerm te kontrolearjen.
It makket de funksjonaliteit mooglik fan it tafoegjen fan ferskate markers op it sinjaalfinster. Maksimaal 26 nammemarkers binne tastien en de tiden moatte foar allegear oars wêze.
a. Om tafoegje Markers yn it sinjaal finster
Links klikke op it fereaske punt wêr't jo wolle dat de Marker pleatst wurde en druk op ALT + N. Dit sil in neamde marker pleatse (A, B, C, ensfh.) Op it fereaske punt. Brûker kin trochgean te dwaan dit foar 26 ferskillende tiid lokaasjes.
Om de tiidwearde op alle plakkenmarkers te fergelykjen, Menu → Markers → Show Change Marker Data.
Dit sil in finster iepenje mei de tiidwearde by elke Marker. De brûker kin de tiidwearde manuell notearje by elke pleatste marker en se subtractearje om it tiidferskil tusken 2 markers te berekkenjen.
b. Om fuortsmite Marker yn it sinjaal finster
Brûker kin nei Menu → Markers → Collect Named Marker gean. Dit sil fuortsmite de lêste Marker pleatst yn it sinjaal finster. Brûker kin alle neamde markers fuortsmite troch te gean nei Menu → Markers → Alle neamde markers sammelje (figuer 12).
Yn figuer 13 kinne wy sjen hoe't de sinjaalkleuren binne feroare. Jo kinne ek in leech sinjaal observearje tafoege oan it sinjaalfinster mei in opmerking - Leech sinjaal.
Notysje ek op de oanwêzigens fan 6 Named Markers (A - E) en de gearstalling fan 'e tiidwearde tusken dizze Markers yn ps.
View
De View submenu wurdt brûkt om te kontrolearjen ferskate attributen omgean mei de grafyske werjefte fan status items likegoed as wearden yn de sinjaal sub finster. Fanút dit menu kinne jo it sinjaalfinster konvertearje nei Swart & Wyt as ek kleurd. De View submenu kinne jo ek feroarje de tiid Dimension fariearjend fan sekonden (secs) to ficoseconds (fs). De brûker kin dizze opsje fine View → Skaal nei tiiddimensje → fs.
Help
It help-submenu befettet opsjes foar it ynskeakeljen fan online help en ek it werjaan fan ynformaasje oer programmaferzje.
Konklúzje
Dit dokumint is makke om de brûker te helpen by it suksesfol simulearjen fan har ûntwerp en it ferifiearjen fan de funksjonaliteit troch it korrigearjen fan it opstellen fan de nedige testbank en it brûken fan Icarus Verilog tegearre mei GTKWave om de golffoarmen te werjaan en de resultaten te observearjen.
Revision Skiednis
Revyzje | Datum | Beskriuwing |
1.00 | 20 mei 2024 | Inisjele release. |
R19US0011EU0100 Rev.1.0
20 mei 2024
© 2024 Renesas Electronics
Dokuminten / Resources
![]() |
RENESAS ForgeFPGA Software Simulaasje [pdf] Brûkersgids REN_r19us0011eu0100, ForgeFPGA Software Simulaasje, ForgeFPGA Software, ForgeFPGA, ForgeFPGA Simulaasje, Software Simulaasje, Simulaasje, Software |