RENESAS ForgeFPGA Programaro Simulado

RENESAS ForgeFPGA Programaro Simulado

Gravaj Informoj

Simulado estas tekniko de aplikado de malsama enigstimulo al la dezajno en malsamaj tempoj por kontroli ĉu la RTL-kodo kondutas laŭ la celita maniero. Ĝi estas uzata por kontroli la fortikecon de la dezajno. Simulado permesas al la uzanto view la tempodiagramo de la rilataj signaloj kompreni kiel la dezajno priskribo en la dezajno file kondutas.

Testbenkoj estas pecoj de kodo, kiuj estas uzataj por simulado. Simpla testbenko instantiigos la Unuon Sub Testo (UUT) kaj kondukos la enigaĵon. La programaro Go Configure uzas Icarus Verilog (iVerilog) kaj GTKWave por observi la simulajn ondformojn kun la stimulo provizita en la testbenko.

Ĉi tiu dokumento priskribas la paŝojn, kiujn oni devas fari dum la instalado de Icarus en via sistemo kaj kiel fari sukcesan simuladon.

Instalante Icarus Verilog

a. Instalu la lastan version de Icarus Verilog (IVerilog) de https://bleyer.org/icarus/
b. Nepre aldonu IVerilog al la PATH kaj lasu ĝin instali GTKWave (Vidu Figuro 1)
Instalante Icarus Verilog

c. Malfermu la Programaron Go Configure kaj elektu la parton: SLG47910(Rev BB) por malfermi la Forge Workshop (vidu Figuro 2).
Instalante Icarus Verilog

d. Alklaku la FPGA-Redaktilon en la mezo de la ilobreto supre aŭ uzanto ankaŭ povas duoble alklaki la FPGA Kernan strukturon en la mezo de la fenestro.
Instalante Icarus Verilog

e. Nova fenestro malfermiĝas nomita Forge Workshop. En la menua ilobreto supre, alklaku Opcioj → Agordoj. En la dialogujo de Agordoj, iru al Iloj sub la langeto de Uzanto-Agordoj. Malelektu la Uzu "sisteman medio-keston" por kaj Icarus Verilog kaj GTKWave. Aldonu la vojon al Iverilog kaj GTKWave konservita en via sistemo en la spacon donita (vidu Figuro 4).
Instalante Icarus Verilog

Vi ĉiuj estas pretaj simuli testbenkon kaj la supraj paŝoj certigas, ke la GTKWave lanĉas aŭtomate dum simulado de testbenko en la programaro Go Configure.

Testbenko

La plej decida paŝo por sukcese efektivigi ajnan sistemon estas kontroli la dezajnon kaj ĝian funkciecon. Kontroli kompleksan sistemon post efektivigo de la aparataro ne estas saĝa elekto. Ĝi estas neefika laŭ mono, tempo kaj rimedoj. Tial, en la kazo de FPGA, testbenko estas uzata por testi la fontkodon de Verilog.

Supozu ke ni havas enigaĵon kiu estas de 11 bitoj, kaj ni volas testi la aparaton por ĉiuj eblaj enigkombinaj valoroj t.e. (211). Ĉar ĉi tio estas tre granda nombro da kombinaĵoj, estas neeble testi ĝin permane. En tiaj kazoj, testbenkoj estas tre utilaj ĉar vi povas testi la dezajnon aŭtomate por ĉiuj eblaj valoroj kaj tial konfirmi la fidindecon de la testa dezajno. Verilog Testbenches estas uzataj por simuli kaj analizi dezajnojn sen la bezono de fizika aparataro.

Prova dezajno, mallongigita kiel DUT, estas sintezebla modulo de la funkcieco, kiun ni volas testi. Alivorte, ĝi estas la cirkvito-dezajno, kiun ni ŝatus testi. Ni povas priskribi nian DUT uzante unu el la tri modelaj stiloj en Verilog - Pordega nivelo, Dataflow aŭ Kondutisma.

Testbenko ne estas sintezebla, tial ĝi estas uzata nur por simulaj celoj. Ĉi tio permesas al la uzanto uzi plenan gamon da Verilog-konstruaĵoj ekz., ŝlosilvortoj kiel "por", "$montrilo" kaj "$monitoro" ktp por verki testbenkojn. Simpla testbenko instantiigos la Unuon Sub Testo (UUT) aŭ Aparato Sub Testo (DUT) kaj veturigos enigojn.

Kompreni Testbenkon

Kompreni Testbenkon

Tempskala Difino en Testbench

Dum simulado, la programaro bezonas scii kiel la tempo estis difinita. La prokrasta unuo estas specifita uzante la direktivon `temposkalon, kiu specifas la tempounuon kaj la precizecon por la moduloj kiuj sekvas ĝin. La `temposkalo helpas determini kion signifas #1 laŭ tempo. # estas uzata por difini la prokraston enkondukotan en la sistemon laŭ tempounuo specifita en temposkalo. Do, #1 signifas 1 ns de prokrasto se la tempo_unuo estas en ns.

Sintakso:
`temposkalo / /

time_unit estas la kvanto de tempo kiun prokrasto de #1 reprezentas. La time_precision bazo reprezentas kiom da decimalaj punktoj de precizeco uzi relative al la tempunuoj. (Vidu linion 23 en Figuro 5)

Ni povas uzi la temposkalan konstrukciojn por uzi malsamajn tempunuojn en la sama dezajno. La uzanto devas memori ke prokrastspecifoj ne estas sintezeblaj kaj ne povas esti konvertitaj al hardvarlogiko. La prokrastfunkcioj estas tute por simulaj celoj. $tempo kaj $realtempa sistemaj funkcioj resendas la nunan tempon kaj la defaŭlta raportformato povas esti ŝanĝita per alia sistema tasko $timeformat .

Example: 

`temposkalo 10us/100ns
`temposkalo 1ns/1ps
#10 restarigi = 1; // prokrastas la signalon je 10 ns
#0.49 $montro( “T = %0t je la Tempo #0.49”, $reala tempo) ;

La prokrasto specifita estas #0.49 kiu estas malpli ol la duonunua tempo. Tamen, la tempoprecizeco estas precizigita por esti 1ps kaj tial la simulilo ne povas iri pli malgranda ol 1ns, kio faras ĝin rondigi la donitan prokrastan deklaron kaj doni 0ns. Do, ĉi tiu deklaro ne provizas ajnan prokraston.

Protokolo de Simulado: 

T = 1 je Tempo #0.49

Modula Deklaro

Modula deklaro en iu ajn testbenko estas male al la ĉefa Verilog-kodo. En testbenko, la modulo estas deklarita sen iuj finaj havenoj kune kun ĝi. (Vidu linion 25 en Figuro 5)

Sintakso: 

modulo ;

La moduldeklaro estas sekvita difinante la enigajn kaj eligajn signalojn difinitajn pli frue en la ĉefdezajno file.
Ni uzas du signalspecojn por veturado kaj monitorado de signaloj dum la simulado. La reg datumtipo tenos la valoron ĝis nova valoro estas asignita al ĝi. Ĉi tiu datumtipo povas esti asignita valoron nur en ĉiam aŭ komenca bloko.
La drata datumtipo estas kiel tiu de fizika konekto. Ĝi tenos la valoron, kiu estas movita de haveno, asignos deklaron aŭ reg. Ĉi tiu datumtipo ne povas esti uzata en komenca aŭ ĉiam bloko. Ajna parametro kaj entjera deklaro ankaŭ estas farita en ĉi tiu sekcio.

Example:
Reg a,b; // la enigo en la HDL-kodo estas difinita kiel reg en testbenko
Drato y; // eligsignalo en HDL estas difinita kiel drato en testbenko

DUT Instanciigo

La celo de testbenko estas kontroli ĉu nia DUT-modulo funkcias. Tial, ni devas ekzisti nian projektan modulon por testi modulon.

Sintakso: 

(. (signalo1),. signal1>(signalo2));

Example:

ALU d0 (.a(a), // signalo "a" en ALU devus esti konektita al "a" en ALU_tb-modulo
.b(b), // signalo "b" en ALU devus esti konektita al "b" en ALU_tb-modulo
.c(c)) ;// signalo "c" en ALU devus esti konektita al "c" en ALU_tb-modulo

Ni instantiigis la DUT-modulon ALU al la testa modulo. La petnomo (d0) estas la elekto de la uzanto. La signaloj kun punkto "." antaŭ ili estas la nomoj por la signaloj ene de la ALU-modulo, dum la drato aŭ reg al kiu ili konektas en la testbenko estas apud la signalo en krampoj (). Oni rekomendas kodi ĉiun havenkonekton en aparta linio, por ke ajna kompila erarmesaĝo ĝuste montru la linionumeron kie la eraro okazis. Ĉar ĉi tiuj ligoj estas faritaj laŭnome, la ordo en kiu ili aperas estas negrava.

DUT-instanciigo ankaŭ povas esti farita por la moduloj kie la testbenkmodulo havas malsamajn signalnomojn. La ĝusta mapado de la signaloj estas kio estas grava dum instantiating.

Example: 

ALU d0 (.a(A), // signalo "a" en ALU devus esti konektita al "A" en ALU_tb-modulo
.clk(horloĝo), // signalo "clk" en ALU devus esti konektita al "horloĝo" ALU_tb-modulo
.el(EL)) ; // signalo "el" en ALU devus esti konektita al "EL" en ALU_tb-modulo

Ĉiam & Komenca Bloko en Testbenko

Estas du sinsekvaj blokoj en Verilog, komenca kaj ĉiam. Ĝuste en ĉi tiuj blokoj ni aplikas la stimulon.

Komenca bloko

La komenca bloko kiu estas efektivigita nur unufoje kaj finita kiam la lasta linio de la bloko estas efektivigita. La stimulo estas skribita en la komencan blokon. (Vidu linion 54-72 en Figuro 5)

Sintakso:
..
komenca komenco
$dumpfile();
$dumpvars();
..(enigu stimulon)
fino

la komenca bloko komencas sian ekzekuton ĉe la komenco de la simulado en tempo t = 0. Komencante kun la unua linio inter la komenco kaj fino, ĉiu linio ekzekutas de supre ĝis malsupre ĝis prokrasto estas atingita. Kiam la prokrasto estas atingita, la ekzekuto de ĉi tiu bloko atendas ĝis la malfruo tempo (10-tempaj unuoj) pasis kaj tiam reprenis ekzekuton.
Uzanto povas difini stimulojn uzante buklojn (for, while, if-else) ankaŭ ene de ĉi tiu komenca bloko anstataŭ enigi ĉiujn kombinaĵojn permane.
Komenca bloko

 

Example:
Komenca Komenco
A = 0; b = 0; // komenci ekzekuton
#10 a = 0; b = 1; // ekzekuto estas je t = 10-unua tempo
#10 a = 1; b = 0; // ekzekuto estas je t = 20-unua tempo
fino

Dump Files

Alia afero por konsideri estas la deklaro de $dumpfiles kaj $dumpvars ene de la komenca bloko (vidu linion 55-56 en Figuro 5). La $dumpfile estas uzata por forĵeti la ŝanĝojn en la valoroj de retoj kaj registroj en a file tio estas nomita kiel ĝia argumento.

Por ekzample:

$dumpfile("alu_tb.vcd");

forĵetos la ŝanĝojn en a file nomita alu_tb.vcd. La ŝanĝoj estas registritaj en a file nomata VCD file tio signifas valorŝanĝan rubejon. VCD (valorŝanĝa rubejo) konservas ĉiujn informojn pri valorŝanĝoj. Ni ne povas havi pli ol unu $dumpfile deklaroj en Verilog-simulado.

La $dumpvars estas uzata por specifi kiuj variabloj estas forĵetotaj (en la file menciita de $dumpfile). La plej simpla maniero uzi ĝin estas sen ajna argumento. La ĝenerala sintakso de la $dumpvars estas

$dumpvars ( <, >);

Ni esence povas specifi kiuj moduloj, kaj kiuj variabloj en moduloj estos forĵetitaj. La plej simpla maniero uzi ĉi tion estas agordi la nivelon al 0 kaj modulnomon kiel la supran modulon (tipe la supra testbenka modulo).

$dumpvars(0, alu_tb);

Kiam nivelo estas agordita al 0, kaj nur la modulnomo estas specifita, ĝi forĵetas ĈIUJN variablojn de tiu modulo kaj ĉiujn variablojn en ĈIUJ malsupra-nivelaj moduloj instanciigitaj de ĉi tiu supra modulo. Se iu modulo ne estas instantiigita de ĉi tiu supra modulo, tiam ĝia variablo ne estos kovrita. Unu plia afero, la deklaro de $dumpfile devas veni antaŭ la $dumpvars aŭ ajnaj aliaj sistemaj taskoj kiuj specifas dump. Tiuj ĉi forĵetas files devas esti deklarita antaŭ la stimulo enigoj alie, neniu valoro estos konservita en ĉi tiuj dump files.

Ĉiam Bloku

Male al la komencaj deklaroj, ĉiam bloko plurfoje ekzekutas, kvankam la ekzekuto komenciĝas je la tempo t = 0. Por ekz.ample, la horloĝsignalo estas esenca por la funkciado de sinsekvaj cirkvitoj kiel Flip-flops. Ĝi devas esti provizita senĉese. Tial, ni povas skribi la kodon por funkciado de la horloĝo en testbenko kiel (vidu linion 52 en Figuro 5):

ĉiam
#10 clk = ~clk;
finmodulo

La supra deklaro estas efektivigita post 10 ns komencante de t = 0. La valoro de la clk estos inversigita post 10 ns de la antaŭa valoro. Tiel, generante horloĝsignalon de 20 ns pulslarĝo. Tial ĉi tiu deklaro generas signalon de frekvenco 50 MHz. Gravas noti, ke la inicialigo de la signalo estas farita antaŭ la ĉiam bloko. Se ni ne faras la komencan parton, la clk-signalo estos x de t – 0, kaj post 10 ns, ĝi estos inversigita al alia x.

Memkontrola Testbenko

Memkontrola testbenko inkluzivas deklaron por kontroli la nunan staton.

  • $ekrano sistema tasko estas ĉefe uzataj por montri sencimigajn mesaĝojn por spuri la fluon de simulado

komenca komenco
A = 0 ; b = 0 ; c = 0; #10; // apliki enigon, atendu
se ( y ! == 1) komenciĝas
$montri ("000 malsukcesis"); //kontrolu
c = 1; #10 ; //apliki enigon, atendu
fino
alie se ( y ! == 0) komenciĝas
$montri ("001 malsukcesis") // kontrolu
b = 1; c = 0; #10 ; fino
alie se (y!==0)
$montri ("010 malsukcesis"); //kontrolu
fino
finmodulo

$ekrano estas uzata por montri valorojn de variabloj, ĉenoj aŭ esprimoj. El la supra ekzample, kiam ajn iu el la buklo if-else estas kontentigita, tiam la simulilo-protokolo montros sian respektivan $ekrano deklaro. Estas novlinio defaŭlte ĉe la fino de la ĉenoj.

$ekrano (“tempo = %t , A = %b, B = %b, C = % b”, $tempo, A,B,C);

La signoj menciitaj en la citaĵoj estos presitaj kiel ili estas. La litero kune kun % indikas la ĉenformaton. Ni uzas %b por reprezenti binarajn datumojn. Ni povas uzi %d, %h, %o por reprezenti dekuma, deksesuma kaj okta, respektive. La %g estas uzata por esprimi realajn nombrojn. Ĉi tiuj estos anstataŭigitaj per la valoroj ekster la citaĵo en la menciita ordo. Por ekzample, la supra deklaro estos montrata en la simulada protokolo kiel: tempo = 20, A = 0, B =1, C = 0

Tablo 1. Verilog Tabelformatoj

Argumento Priskribo
%h, %H Montru en deksesuma formato
%d, %D Montru en dekuma formo
%b, %B Montru en binara formato
%m, %M Montru hierarkian nomon
%s, %S Montru kiel ŝnuro
%t, %T Montru en tempoformato
%f, %F Montru 'reala' en dekuma formato
%e, %E Montru "realan" en eksponenta formato

$ekrano ĉefe presas la datumojn aŭ variablon kiel ĝi estas en tiu momento de tiu tempo kiel la printf en C. Ni devas mencii $ekrano por kia ajn teksto ni devas view en la simuladprotokolo.

  • $tempo

$tempo estas sistema tasko kiu resendos la nunan tempon de la simulado.

  • $monitoro

$monitoro kontrolos la datumojn aŭ variablon por kiu ĝi estas skribita kaj kiam ajn la variablo ŝanĝiĝas, ĝi presas
la ŝanĝita valoro. Ĝi atingas similan efikon voki $display post ĉiufoje kiam iu ajn el ĝiaj argumentoj ricevas
ĝisdatigita. $monitoro estas kiel tasko kiu estas generita por kuri en la fono de la ĉefa fadeno kiu monitoras kaj
montras valorŝanĝojn de ĝiaj argumentvariabloj. $monitoro havas la saman sintakson kiel $ekrano.

$monitoro(“tempo = %t, A = %b, B = %b, C = % b”, $tempo, A,B,C);
Memkontrola Testbenko

De Figuro 7 vi povas observi ke novaj linioj de kodoj estis aldonitaj por mem-taksi la testbenko. La lokigo de la $ekrano kaj $monitoro deklaroj en malsamaj sekcioj de la testbenko donos malsamajn rezultojn (vidu Figuro 8). $tempo menciita en ĉi tiuj deklaroj presas la tempon por kiu la valoro estas presita. Samtempe unuo diru 170000, ni povas vidi kiel estas diferenco en la valoro por A kaj B pro la $ekrano kaj $monitoro deklaroj.
Memkontrola Testbenko

GTKWave Programaro

GTKWave estas plene prezentita GTK+-ondo viewer por Unikso, Win32, kaj Mac OSX kiu legas LXT, LXT2, VZT, FST, kaj GHW files same kiel norma VCD/EVCD files kaj permesas ilian viewing. Ĝia oficiala webretejo estas ĉe http://gtkwave.sourceforge.net/ . GTKWave estas la rekomendinda viewer de Icarus Verilog simula ilo.

Post kiam la uzanto estas sukcese kreita testbenko por testi la funkciecon de la dezajno, la uzanto nun povas uzi la programaron GTKWave por view la ondoformoj.

Por lanĉi la programaron GTKWave al view la ondformojn, la uzanto devas alklaki la butonon Simuli Testbenko sur la supro de la ilobreto aŭ el la ĉefa menuo Iloj→ Simulado→ Simuli Testbenko. Se ne estas sintaksaj eraroj, tiam depende de la dezajno, la GTKWave devus esti lanĉita aŭtomate aŭ la rezultoj de la stimuloj en la testbenko aperos en la sekcio Logger de la fenestro.

La programaro GTKWave malfermas la .vcd-formatan rubejonfile aŭtomate. La GTKWave-fenestro ne montras la ondformon kiam ĝi malfermiĝas. Ĉi tio donas al la uzanto ŝancon elekti kiujn signalojn ĝi volas view kaj observu. Por elekti la signalon, la uzanto devas montri, la uzanto bezonas alklaki la nomon de sia modulo/instanco sur la maldekstra flanko de la fenestro sub la langeto SST. Alklakante la + de ĉiu kazo, vi povas vidi la signalojn kiuj rilatas al tiu kazo en la malsupra sekcio. Tiam vi povas treni kaj faligi la deziratan signalon aŭ duoble alklaki ilin por montriĝi en la fenestro Signaloj. Vi ankaŭ povas elekti ĉiujn (CTRL + A) kaj enmeti ilin al la signala fenestro (vidu Figuro 9).
GTKWave Programaro

La signaloj nun estas aldonitaj al la signalfenestro sed ĝi ankoraŭ devas esti simulita. Post aldoni la deziratajn signalojn al la signalfenestro, alklakuSimbolo por adapti la signalojn al la nuna larĝo de la fenestro kaj poste reŝargi la signalojn de la reŝargiSimbolo simbolo ĉeestanta sur la ilobreto. Vi nun povas vidi la signalojn kun iliaj respektivaj valoroj.

Signalaj Valoroj

Defaŭlte, la valoroj de la signaloj estas en deksesuma formato kaj ĉiuj ondoj estas verdaj (se ĝuste funkcias).

Uzanto povas ŝanĝi la ecojn de ĉi tiuj signaloj dekstre alklakante la signalon kaj elektante Datuman Formaton aŭ Koloran Formaton. Uzanto ankaŭ povas enmeti malplenan signalon por fari sekciojn inter grupo de signaloj. Kiam vi havas la deziratan optikan rezulton, vi povas konservi viajn agordojn irante File → Skribu Konservu File.

Ilobreto GTKWave

La ilobreto (vidu Figuro 10) permesas al la uzanto plenumi bazajn funkciojn por la signalo. Ni diskutu ĉiun opcion sur la ilobreto de maldekstre dekstren.
Ilobreto GTKWave

  1. Menuaj Opcioj: Sub ĉi tiu opcio ni povas view ĉiuj diversaj trajtoj de la programaro, kiuj povas esti uzataj por ludi ĉirkaŭe kun la programaro. La detaloj sub ĉi tiu menuopcio estas kovritaj sub Sekcio 8 de ĉi tiu uzantgvidilo.
  2. Tranĉi Spurojn: Ĝi estas uzata por forigi/tranĉi la elektan signalon el la signalfenestro
  3. Kopiu Spurojn: Ĝi estas uzata por kopii la elektitan signalon el la signalfenestro
  4. Algluu Spurojn: La kopiita/tranĉita spuro povas esti algluita en malsama loko en la signalfenestro
  5. Zoom Fit: Ĝi estas uzata por adapti la signalojn laŭ la grandeco de la fenestro, kiun la uzanto elektas montri
  6. Zoom En: Ĝi estas uzata por zomi en la signalfenestro
  7. Zoom Out: Ĝi estas uzata por malgrandigi la signalfenestron
  8. Zoom Malfari: ĝi estas uzata por malfari la zomi en/malproksimigi sur la signalfenestro
  9. Zomu al Komenco: ĉi tio zomos la signalfenestron, montrante la komencan tempon de la signaloj.
  10. Zomi al Fino: ĉi tio zomos la signalfenestron montrante la fintempon de la signaloj
  11. Trovu antaŭan randon: Ĉi tio movas la markilon al la maldekstra flanko indikante la antaŭan randon
  12. Trovu sekvan randon: Ĉi tio movas la markilon dekstren indikante la sekvan randon
  13. Rulumu malsupran/supran ligon: uzante ĉi tion ni povas agordi la tempokadron en kiu la uzanto volas montri. Por ekzample, ni povas agordi la tempokadron al 0 sek al 500 ns, ĝi montros la signalojn sub tiu daŭro nur.
  14. Reŝargi: La reŝargi estas premata kiam ajn estas ŝanĝo al la montrata signalo. Ĝi reŝargos kaj montros la signalon laŭ la novaj parametroj. Por ekzample, post ŝanĝi la tempokadron de la signalo, ni devas reŝargi la signalon por montri la signalon en la nova fiksita tempokadro.

Menuaj Opcioj

De la maldekstra supra angulo de la programaro GTKWave, uzanto povas aliri la menuopciojn klakante la tri vertikalajn liniojn (vidu Figuro 11). La uzanto povas trovi la sekvajn opciojn sub la Menuaj opcioj:
Menuaj Opcioj

File

La File submenuo enhavas diversajn erojn rilatajn al aliro files, import-eksportado VCD files, presado, kaj legado/skribo files kaj elirante.

Redakti

La submenuo Redakti estas uzata por plenumi diversajn utilajn funkciojn kiel ŝanĝi la datuman reprezenton de valoroj en la ondo-subfenestro. Uzante la opciojn sub la submenuo Redakti, uzanto povas ŝanĝi la datumformaton de la signaloj, rearanĝi ilin, ŝanĝi ilin, tranĉi ĝin, reliefigi ĝin, grupigi signalojn, komenti signalojn, ŝanĝi la koloron de la signaloj ktp.

Serĉu

La Serĉa submenuo estas uzata por fari serĉojn pri retaj nomoj kaj valoroj. Ĝi helpas plenumi funkciojn sur malsamaj hierarkiaj niveloj de la signaloj kaj okazoj en la VCD file.

Tempo

La temposubmenuo enhavas superaron de la funkcioj faritaj de la Navigadoj kaj la Statuso-Panelo butonoj.
Ĝi ebligas simplajn, temporilatajn, funkciojn kiel zomi, moviĝi al aparta tempopunkto, ŝanĝi la signalon en certa direkto, ktp.

Markilo

La markilo-submenuo estas uzata por fari diversajn manipuladojn sur la markilo kaj kontroli movo eksterekrana.
Ĝi ebligas la funkciecon aldoni multajn markilojn sur la signalfenestro. Maksimume 26 nommarkoj estas permesitaj kaj la tempoj por ĉiuj devas esti malsamaj.

a. Por aldoni Markilojn en la signalfenestro
Maldekstre alklaku ĉe la bezonata punkto, kie vi volas, ke la Markilo estu metita kaj premu ALT + N. Ĉi tio metos nomitan markilon (A,B,C, ktp.) ĉe la bezonata punkto. Uzanto povas daŭrigi fari tion por 26 malsamaj tempolokoj.
Por kompari la tempovaloron ĉe ĉiuj lokaj markiloj, Menuo → Markiloj → Montri Ŝanĝan Markilojn.
Ĉi tio malfermos fenestron kun la tempovaloro ĉe ĉiu Markilo. La uzanto povas permane noti la tempovaloron ĉe ĉiu markilo metita kaj subtrahi ilin por kalkuli la tempodiferencon inter 2 markiloj.
b. Por forigi Markilon en la signala fenestro

Uzanto povas iri al Menuo → Markiloj → Kolekti Nomitan Markilon. Ĉi tio forigos la lastnomitan Markilon metita en la signalfenestron. Uzanto povas forigi ĉiujn nomitajn Signilojn irante al Menuo → Markiloj → Kolekti Ĉiuj Nomitaj Markiloj (Figuro 12).
Menuaj Opcioj

En Figuro 13, ni povas vidi kiel la signalkoloroj estis ŝanĝitaj. Vi povas observi Malplenan Signalon aldonitan al la signala fenestro ankaŭ kun komento - Blanka Signalo.
Notu ankaŭ la ĉeeston de 6 Nomitaj Markiloj (A – E) kaj la kompurigo de la tempovaloro inter ĉi tiuj Markiloj en ps.
Menuaj Opcioj

View

La View submenuo estas uzata por kontroli diversajn atributojn traktantajn la grafikan bildigon de statusaj eroj same kiel valorojn en la signala subfenestro. De ĉi tiu menuo, vi povas konverti la signalan fenestron al Nigra kaj Blanka aŭ ankaŭ kolora. La View submenuo ankaŭ ebligas al vi ŝanĝi la tempan Dimension de sekundoj (sekundoj) al ficosekundoj (fs). La uzanto povas trovi ĉi tiun opcion View → Skali al Tempo-Dimensio → fs.

Helpu

La helpsubmenuo enhavas eblojn por ebligi enretan helpon kaj montri informojn pri programversio.

Konkludo

Ĉi tiu dokumento estis kreita por helpi la uzanton sukcese simuli ilian dezajnon kaj kontroli la funkciecon korektante redaktadon de la bezonata testbenko kaj uzante Icarus Verilog kune kun GTKWave por montri la ondformojn kaj observi la rezultojn.

Historio de Revizio

Revizio Dato Priskribo
1.00 20-a de majo 2024 Komenca eldono.

R19US0011EU0100 Rev.1.0
20-a de majo 2024
© 2024 Renesas Electronics
Logo

Dokumentoj/Rimedoj

RENESAS ForgeFPGA Programaro Simulado [pdf] Uzantogvidilo
REN_r19us0011eu0100, ForgeFPGA Programaro Simulado, ForgeFPGA Programaro, ForgeFPGA, ForgeFPGA Simulado, Programaro Simulado, Simulado, Programaro

Referencoj

Lasu komenton

Via retadreso ne estos publikigita. Bezonataj kampoj estas markitaj *