Праграмнае мадэляванне RENESAS ForgeFPGA
Важная інфармацыя
Мадэляванне - гэта метад прымянення розных ўваходных стымулаў да дызайну ў розны час, каб праверыць, ці паводзіць сябе код RTL належным чынам. Ён выкарыстоўваецца для праверкі трываласці канструкцыі. Мадэляванне дазваляе карыстальніку view часовую дыяграму адпаведных сігналаў, каб зразумець, як апісанне дызайну ў дызайне file паводзіць сябе.
Тэставыя стэнды - гэта фрагменты кода, якія выкарыстоўваюцца для мадэлявання. Просты тэставы стэнд створыць асобнік тэсціруемага блока (UUT) і ўводзіць увод. Праграмнае забеспячэнне Go Configure выкарыстоўвае Icarus Verilog (iVerilog) і GTKWave для назірання за формамі сігналаў мадэлявання са стымулам, прадстаўленым у выпрабавальным стэндзе.
У гэтым дакуменце апісваюцца крокі, якія неабходна выканаць пры ўсталёўцы Icarus у вашай сістэме, і як запусціць паспяховую сімуляцыю.
Ўстаноўка Icarus Verilog
a. Усталюйце апошнюю версію Icarus Verilog (IVerilog) з https://bleyer.org/icarus/
b. Абавязкова дадайце IVerilog у PATH і дайце яму ўсталяваць GTKWave (гл. малюнак 1)
c. Адкрыйце праграмнае забеспячэнне Go Configure і абярыце дэталь: SLG47910(Rev BB), каб адкрыць майстэрню Forge (гл. малюнак 2).
d. Пстрыкніце рэдактар FPGA у сярэдзіне панэлі інструментаў уверсе, або карыстальнік можа двойчы пстрыкнуць структуру ядра FPGA у сярэдзіне акна.
e. Адкрыецца новае акно пад назвай Майстэрня кузні. На панэлі інструментаў меню ўверсе націсніце Параметры → Налады. У дыялогавым акне «Настройкі» перайдзіце да «Інструменты» на ўкладцы «Настройкі карыстальніка». Зніміце выбар у полі «Выкарыстоўваць сістэмнае асяроддзе» для Icarus Verilog і GTKWave. Дадайце ў адведзенае месца шлях да Iverilog і GTKWave, захаваны ў вашай сістэме (гл. малюнак 4).
Усё гатова для мадэлявання тэставага стенда, а апісаныя вышэй крокі забяспечваюць аўтаматычны запуск GTKWave пры мадэляванні тэставага стенда ў праграмным забеспячэнні Go Configure.
Тэставы стэнд
Самым важным крокам у паспяховым укараненні любой сістэмы з'яўляецца праверка канструкцыі і яе функцыянальнасці. Праверка складанай сістэмы пасля ўкаранення абсталявання - неразумны выбар. Гэта неэфектыўна з пункту гледжання грошай, часу і рэсурсаў. Такім чынам, у выпадку FPGA тэставы стэнд выкарыстоўваецца для тэставання зыходнага кода Verilog.
Выкажам здагадку, што ў нас ёсць уваход, які складаецца з 11 біт, і мы хочам праверыць прыладу на ўсе магчымыя значэнні ўваходных камбінацый, напрыклад (211). Паколькі гэта вельмі вялікая колькасць камбінацый, праверыць яе ўручную немагчыма. У такіх выпадках выпрабавальныя стэнды вельмі карысныя, бо вы можаце аўтаматычна праверыць дызайн на ўсе магчымыя значэнні і, такім чынам, пацвердзіць надзейнасць тэставага дызайну. Стэнды Verilog Testbenches выкарыстоўваюцца для мадэлявання і аналізу канструкцый без неабходнасці фізічнай апаратнай прылады.
Выпрабоўваная канструкцыя, скарочана DUT, уяўляе сабой сінтэзаваны модуль функцыянальнасці, якую мы хочам праверыць. Іншымі словамі, мы хацелі б праверыць схему схемы. Мы можам апісаць наш DUT, выкарыстоўваючы адзін з трох стыляў мадэлявання ў Verilog - узровень варот, паток даных або паводніцкі.
Тэставы стэнд немагчыма сінтэзаваць, таму ён выкарыстоўваецца толькі для мадэлявання. Гэта дазваляе карыстачу выкарыстоўваць поўны спектр канструкцый Verilog, напрыклад, такія ключавыя словы, як «for», «$display» і «$monitor» і г. д. для напісання тэставых стэндаў. Просты тэставы стэнд створыць асобнік тэсціруемага прылады (UUT) або тэстуемай прылады (DUT) і ўвядзе ўваходныя сігналы.
Разуменне Testbench
Вызначэнне шкалы часу ў Testbench
Пры мадэляванні праграмнае забеспячэнне павінна ведаць, як быў вызначаны час. Адзінка затрымкі вызначаецца з дапамогай дырэктывы шкалы часу, якая задае адзінку часу і дакладнасць для наступных за ёй модуляў. Шкала часу дапамагае вызначыць, што азначае №1 з пункту гледжання часу. # выкарыстоўваецца для вызначэння затрымкі, якая будзе ўведзена ў сістэму ў адпаведнасці з адзінкай часу, вызначанай у шкале часу. Такім чынам, #1 азначае 1 нс затрымкі, калі адзінка_часу ў нс.
Сінтаксіс:
`часавы маштаб / /
time_unit - гэта колькасць часу, якое прадстаўляе затрымка №1. База time_precision паказвае, колькі дзесятковых кропак дакладнасці выкарыстоўваць адносна адзінак часу. (Глядзіце радок 23 на малюнку 5)
Мы можам выкарыстоўваць канструкцыі шкалы часу, каб выкарыстоўваць розныя адзінкі часу ў адным дызайне. Карыстальнік павінен памятаць, што спецыфікацыі затрымкі не паддаюцца сінтэзу і не могуць быць пераўтвораны ў апаратную логіку. Функцыі затрымкі прызначаны выключна для мадэлявання. $час і $у рэжыме рэальнага часу сістэмныя функцыі вяртаюць бягучы час, і фармат справаздачы па змаўчанні можа быць зменены іншай сістэмнай задачай $timeformat.
Exampль:
`часавы маштаб 10us/100ns
`часавая шкала 1 нс/1 пс
#10 скід = 1; // затрымлівае сігнал на 10 нс
#0.49 $display( “T = %0t у час #0.49”, $рэальны час) ;
Указаная затрымка складае #0.49, што менш за палову адзінкі часу. Аднак дакладнасць часу вызначана роўнай 1 пс, і, такім чынам, сімулятар не можа быць меншым за 1 нс, што робіць яго акругленнем дадзенай затрымкі і дае 0 нс. Такім чынам, гэтая заява не забяспечвае ніякай затрымкі.
Журнал мадэлявання:
T = 1 у час №0.49
Дэкларацыя модуля
Дэкларацыя модуля ў любым тэставым стэндзе адрозніваецца ад асноўнага кода Verilog. У тэставым стэндзе модуль дэкларуецца без тэрмінальных партоў разам з ім. (Глядзіце радок 25 на малюнку 5)
Сінтаксіс:
модуль ;
Пасля дэкларацыі модуля вызначаюцца ўваходныя і выходныя сігналы, вызначаныя раней у асноўнай канструкцыі file.
Мы выкарыстоўваем два тыпы сігналаў для кіравання і кантролю сігналаў падчас мадэлявання. Тып даных reg будзе захоўваць значэнне, пакуль яму не будзе прысвоена новае значэнне. Гэтаму тыпу даных можна прысвоіць значэнне толькі ў заўсёды ці пачатковым блоку.
Тып дадзеных Wire падобны на тып фізічнага злучэння. Ён будзе ўтрымліваць значэнне, якое кіруецца портам, аператарам прысваення або рэг. Гэты тып дадзеных не можа быць выкарыстаны ў пачатковым або заўсёды блоку. Любы параметр і дэкларацыя цэлага ліку таксама выконваюцца ў гэтым раздзеле.
Exampль:
Рэг а,б; // увод у кодзе HDL вызначаецца як reg у тэставым стэндзе
Дрот у; // выхадны сігнал у HDL вызначаецца як дрот у тэставым стэндзе
Экземпляр DUT
Мэта тэставага стенда - праверыць, ці функцыянуе наш модуль DUT. Такім чынам, нам трэба стварыць асобнік нашага дызайнерскага модуля для тэставага модуля.
Сінтаксіс:
(. (сігнал1), . сігнал1>(сігнал2));
Exampль:
ALU d0 (.a(a), // сігнал «a» у ALU павінен быць злучаны з «a» у модулі ALU_tb
.b(b), // сігнал “b” у ALU павінен быць злучаны з “b” у модулі ALU_tb
.c(c)) ;// сігнал “c” у ALU павінен быць злучаны з “c” у модулі ALU_tb
Мы стварылі асобнік модуля DUT ALU для тэставага модуля. Імя асобніка (d0) выбірае карыстальнік. Сігналы з кропкай «.» перад імі знаходзяцца назвы сігналаў у модулі ALU, у той час як провад або рэгулятар, да якога яны падключаюцца ў выпрабавальным стэндзе, знаходзіцца побач з сігналам у дужках (). Рэкамендуецца кадзіраваць кожнае злучэнне порта ў асобным радку, каб любое паведамленне пра памылку кампіляцыі правільна паказвала на нумар радка, дзе адбылася памылка. Паколькі гэтыя сувязі зроблены па імені, парадак іх з'яўлення не мае значэння.
Стварэнне DUT таксама можа быць зроблена для модуляў, у якіх модуль тэставага стэнда мае розныя назвы сігналаў. Правільнае адлюстраванне сігналаў - гэта тое, што важна пры стварэнні асобніка.
Exampле:
ALU d0 (.a(A), // сігнал «a» у ALU павінен быць злучаны з «A» у модулі ALU_tb
.clk(clock), // сігнал “clk” у ALU павінен быць падлучаны да модуля “clock” ALU_tb
.out(OUT)); // сігнал «out» у ALU павінен быць падлучаны да «OUT» у модулі ALU_tb
Заўсёды і пачатковы блок у выпрабавальным стэндзе
Ёсць два паслядоўных блока ў Verilog, пачатковы і заўсёды. Менавіта ў гэтыя блокі мы ўжываем стымул.
Пачатковы блок
Пачатковы блок, які выконваецца толькі адзін раз і завяршаецца, калі выконваецца апошні радок блока. Стымул запісваецца ў пачатковы блок. (Глядзіце радкі 54-72 на малюнку 5)
Сінтаксіс:
..
пачатковы пачатак
$ дампfile();
$dumpvars();
..(увядзіце стымул)
канец
пачатковы блок пачынае сваё выкананне ў пачатку мадэлявання ў момант t = 0. Пачынаючы з першага радка паміж пачаткам і канцом, кожны радок выконваецца зверху ўніз, пакуль не будзе дасягнута затрымка. Калі затрымка дасягнута, выкананне гэтага блока чакае, пакуль не пройдзе час затрымкі (10 адзінак часу), а затым зноў пачынае выкананне.
Карыстальнік можа вызначаць стымулы з дапамогай цыклаў (for, while, if-else), а таксама ўнутры гэтага пачатковага блока замест таго, каб уводзіць усе камбінацыі ўручную.
Exampле:
Пачатковы пачатак
А = 0; b = 0; // пачаць выкананне
#10 а = 0; b = 1; // выкананне адбываецца ў t = 10 адзінак часу
#10 а = 1; b = 0; // выкананне адбываецца ў t = 20 адзінак часу
канец
Звалка Files
Яшчэ адна рэч, якую трэба мець на ўвазе, - гэта дэклараванне $звалкаfiles і $дампвары ўнутры пачатковага блока (гл. радкі 55-56 на малюнку 5). $звалкаfile выкарыстоўваецца для дампа змяненняў у значэннях сетак і рэгістраў у a file што называецца яго аргументам.
Напрыкладampль:
$звалкаfile(“alu_tb.vcd”);
скіне змены ў a file пад назвай alu_tb.vcd. Змены запісаны ў а file называецца VCD file што азначае дамп змены значэння. VCD (дамп змены значэнняў) захоўвае ўсю інфармацыю аб зменах значэнняў. Мы не можам мець больш за адзін $dumpfile заявы ў мадэляванні Verilog.
$дампвары выкарыстоўваецца для ўказання, якія зменныя павінны быць дампаваныя (у file згаданы $dumpfile). Самы просты спосаб выкарыстоўваць гэта без аргументаў. Агульны сінтаксіс $dumpvars
$дампвары ( <, >);
У асноўным мы можам вызначыць, якія модулі і якія зменныя ў модулях будуць скінуты. Самы просты спосаб выкарыстаць гэта - усталяваць узровень 0 і назва модуля ў якасці верхняга модуля (звычайна гэта верхні модуль тэставага стенда).
$дампвары(0, alu_tb);
Калі ўзровень усталяваны ў 0 і ўказана толькі імя модуля, ён выдае ЎСЕ зменныя гэтага модуля і ўсе зменныя ва ЎСІХ модулях ніжняга ўзроўню, створаных гэтым верхнім модулем. Калі які-небудзь модуль не створаны гэтым верхнім модулем, то яго зменная не будзе разглядацца. Яшчэ адна рэч, дэкларацыя $звалкаfile павінен стаяць перад $dumpvars або любымі іншымі сістэмнымі задачамі, якія вызначаюць дамп. Гэтыя звалкі files павінны быць аб'яўлены перад уводам стымулаў, інакш ніякія значэнні не будуць захаваны ў гэтым дампе files.
Заўсёды блакіраваць
У адрозненне ад пачатковых аператараў, заўсёды блок выконваецца паўторна, хоць выкананне пачынаецца ў момант t = 0. НапрыкладampТактавы сігнал неабходны для працы паслядоўных схем, такіх як трыгеры. Яе трэба пастаянна падаваць. Такім чынам, мы можам напісаць код для працы гадзінніка ў выпрабавальным стэндзе наступным чынам (гл. радок 52 на малюнку 5):
заўсёды
#10 clk = ~clk;
канцавы модуль
Вышэйпрыведзены аператар выконваецца пасля 10 нс, пачынаючы з t = 0. Значэнне clk будзе інвертавана праз 10 нс ад папярэдняга значэння. Такім чынам, генеруецца тактавы сігнал працягласцю імпульсу 20 нс. Такім чынам, гэтая заява генеруе сігнал частатой 50 МГц. Важна адзначыць, што ініцыялізацыя сігналу выконваецца перад блокам заўсёды. Калі мы не выканаем частку ініцыялізацыі, сігнал clk будзе x з t – 0, і праз 10 нс ён будзе інвертаваны ў іншы x.
Стэнд для самакантролю
Стэнд для самаправеркі ўключае аператар для праверкі бягучага стану.
- $дысплей сістэмныя задачы ў асноўным выкарыстоўваюцца для адлюстравання адладкавых паведамленняў для адсочвання патоку мадэлявання
пачатковы пачатак
А = 0; b = 0; c = 0; #10; // прымяніць увод, чакаць
if( y ! == 1) пачаць
$display( “000 не атрымалася”); //праверыць
c = 1; #10 ; //прымяніць увод, чакаць
канец
інакш, калі ( y ! == 0) пачнецца
$display(“001 не атрымалася”) // праверка
b = 1; c = 0; #10 ; канец
інакш, калі (y!==0)
$display (“ 010 не атрымалася”); //праверыць
канец
канцавы модуль
$дысплей выкарыстоўваецца для адлюстравання значэнняў зменных, радкоў або выразаў. З прыведзенага вышэй выхample, кожны раз, калі любы з цыклу if-else задаволены, у журнале сімулятара будзе адлюстроўвацца адпаведны $дысплей заяву. Па змаўчанні ў канцы радкоў ёсць новы радок.
$дысплей (“час = %t, A = %b, B = %b, C = % b”, $час, A,B,C);
Сімвалы, згаданыя ў цытатах, будуць надрукаваныя без зменаў. Літара разам з % пазначае фармат радка. Мы выкарыстоўваем %b для прадстаўлення двайковых даных. Мы можам выкарыстоўваць %d, %h, %o для прадстаўлення дзесятковага, шаснаццатковага і васьмярковага лікаў адпаведна. %g выкарыстоўваецца для выражэння рэчаісных лікаў. Яны будуць заменены значэннямі па-за цытатай у згаданым парадку. Напрыкладample, прыведзеная вышэй заява будзе адлюстроўвацца ў журнале мадэлявання як: час = 20, A = 0, B =1, C = 0
стол 1. Фарматы табліц Verilog
Аргумент | Апісанне |
%h, %H | Адлюстраванне ў шаснаццатковым фармаце |
%d, %D | Адлюстраванне ў дзесятковым выглядзе |
%b, %B | Адлюстраванне ў двайковым фармаце |
%m, %M | Адлюстроўваць іерархічнае імя |
%s, %S | Адлюстраваць як радок |
%t, %T | Адлюстраванне ў фармаце часу |
%f, %F | Адлюстраваць "рэальны" ў дзесятковым фармаце |
%e, %E | Адлюстраванне "сапраўднага" ў экспаненцыяльным фармаце |
$дысплей у асноўным друкуе дадзеныя або зменныя такімі, якія яны ёсць на той момант, як printf у C. Мы павінны адзначыць $дысплей для любога тэксту, які мы павінны view у журнале мадэлявання.
- $час
$час гэта сістэмная задача, якая верне бягучы час мадэлявання.
- $манітор
$манітор будзе кантраляваць дадзеныя або зменныя, для якіх ён напісаны, і кожны раз, калі зменная змяняецца, ён будзе друкавацца
змененае значэнне. Ён дасягае аналагічнага эфекту выкліку $display пасля кожнага атрымання любога з яго аргументаў
абноўлены. $манітор гэта як задача, якая ствараецца для выканання ў фонавым рэжыме асноўнага патоку, які кантралюе і
адлюстроўвае змены значэнняў сваіх зменных аргументаў. $манітор мае той жа сінтаксіс, што і $дысплей.
$манітор(“час = %t, A = %b, B = %b, C = % b”, $час, A,B,C);
На малюнку 7 можна заўважыць, што былі дададзены новыя радкі кодаў для самастойнай ацэнкі тэставага стэнда. Размяшчэнне $дысплей і $манітор заявы ў розных раздзелах тэставага стэнда дадуць розныя вынікі (гл. малюнак 8). $час згаданы ў гэтых заявах, друкуе час, для якога друкуецца значэнне. У той жа час адзінка, скажам, 170000, мы можам убачыць, як існуе розніца ў значэнні для A і B з-за $дысплей і $манітор заявы.
Праграмнае забеспячэнне GTKWave
GTKWave - гэта поўнафункцыянальная хваля GTK+ viewer для Unix, Win32 і Mac OSX, які чытае LXT, LXT2, VZT, FST і GHW files, а таксама стандартныя VCD/EVCD files і дазваляе іх viewінж. Яго афіцыйны webсайт знаходзіцца на http://gtkwave.sourceforge.net/ . Рэкамендуецца GTKWave viewінструмент мадэлявання Icarus Verilog.
Пасля таго, як карыстальнік будзе паспяхова створаны тэставы стэнд для праверкі функцыянальнасці дызайну, карыстальнік можа выкарыстоўваць праграмнае забеспячэнне GTKWave для view хвалі.
Каб запусціць праграму GTKWave view формы сігналаў, карыстальнік павінен націснуць кнопку Simulate Testbench у верхняй частцы панэлі інструментаў або з галоўнага меню Tools→ Simulation→ Simulate Testbench. Калі сінтаксічных памылак няма, то ў залежнасці ад дызайну GTKWave павінен запускацца аўтаматычна або вынікі стымулаў у тэставым стэндзе будуць адлюстроўвацца ў раздзеле акна "Легістратар".
Праграма GTKWave адкрывае дамп фармату .vcdfile аўтаматычна. Пры адкрыцці акна GTKWave не адлюстроўваецца сігнал. Гэта дае карыстальніку магчымасць выбраць, якія сігналы ён хоча view і назіраць. Каб выбраць сігнал, карыстальнік павінен адлюстраваць, карыстальнік павінен націснуць на назву свайго модуля/экземпляра ў левай частцы акна пад укладкай SST. Націснуўшы + на кожным асобніку, вы можаце ўбачыць сігналы, звязаныя з гэтым асобнікам, у ніжняй частцы. Затым вы можаце перацягнуць патрэбны сігнал або двойчы пстрыкнуць па ім для адлюстравання ў акне сігналаў. Вы таксама можаце выбраць усе (CTRL + A) і ўставіць іх у акно сігналаў (гл. малюнак 9).
Сігналы цяпер дададзены ў акно сігналу, але яго яшчэ трэба змадэляваць. Пасля дадання патрэбных сігналаў у акно сігналаў націсніце каб падагнаць сігналы да бягучай шырыні акна, а затым перазагрузіць сігналы з перазагрузкі
сімвал прысутнічае на панэлі інструментаў. Цяпер вы можаце бачыць сігналы з іх адпаведнымі значэннямі.
Значэнні сігналаў
Па змаўчанні значэнні сігналаў прадстаўлены ў шаснаццатковым фармаце, і ўсе хвалі афарбаваны ў зялёны колер (калі яны працуюць правільна).
Карыстальнік можа змяніць уласцівасці гэтых сігналаў, пстрыкнуўшы сігнал правай кнопкай мышы і выбраўшы «Фармат даных» або «Фармат колеру». Карыстальнік таксама можа ўставіць пусты сігнал, каб зрабіць раздзелы паміж групамі сігналаў. Калі вы атрымаеце жаданы аптычны вынік, вы можаце захаваць свае канфігурацыі, перайшоўшы File → Напісаць Захаваць File.
Панэль інструментаў GTKWave
Панэль інструментаў (гл. малюнак 10) дазваляе карыстачу выконваць асноўныя функцыі для сігналу. Давайце абмяркуем кожную опцыю на панэлі інструментаў злева направа.
- Параметры меню: Па такім варыянце можам view усе розныя функцыі праграмнага забеспячэння, якія можна выкарыстоўваць для гульні з праграмным забеспячэннем. Падрабязнасці гэтага пункта меню разглядаюцца ў раздзеле 8 гэтага кіраўніцтва карыстальніка.
- Выразаць сляды: Ён выкарыстоўваецца для выдалення/выразання сігналу выбару з акна сігналу
- Капіяваць сляды: Ён выкарыстоўваецца для капіравання абранага сігналу з акна сігналу
- Уставіць сляды: Скапіраваны/вырэзаны след можа быць устаўлены ў іншае месца ў акне сігналу
- Zoom Fit: Ён выкарыстоўваецца для падагнання сігналаў у адпаведнасці з памерам акна, якое карыстальнік выбірае для адлюстравання
- Павялічыць: Ён выкарыстоўваецца для павелічэння акна сігналу
- Паменшыць: Ён выкарыстоўваецца для памяншэння акна сігналу
- Адмена павелічэння: выкарыстоўваецца для адмены павелічэння/памяншэння акна сігналу
- Павялічыць, каб пачаць: гэта павялічыць акно сігналу, адлюстроўваючы час пачатку сігналаў.
- Павялічыць да канца: гэта павялічыць акно сігналу, якое паказвае час заканчэння сігналаў
- Знайдзіце папярэдні край: Гэта зрушвае маркер у левы бок, паказваючы папярэдні край
- Знайдзіце наступны край: Гэта зрушвае маркер управа, паказваючы наступны край
- Пракруціць ніжнюю/верхнюю сувязь: выкарыстоўваючы гэта, мы можам усталяваць часовыя рамкі, у якія карыстальнік хоча паказаць. Напрыкладample, мы можам усталяваць часовыя рамкі ад 0 секунд да 500 нс, ён будзе адлюстроўваць сігналы толькі гэтай працягласці.
- Перазагрузіць: Перазагрузка націскаецца кожны раз, калі адлюстроўваецца сігнал. Ён перазагрузіцца і адлюструе сігнал у адпаведнасці з новымі параметрамі. Напрыкладample, пасля змены перыяду часу сігналу, нам трэба перазагрузіць сігнал, каб адлюстраваць сігнал у новым зададзеным перыядзе часу.
Параметры меню
З левага верхняга вугла праграмнага забеспячэння GTKWave карыстальнік можа атрымаць доступ да параметраў меню, націснуўшы тры вертыкальныя лініі (гл. малюнак 11). Карыстальнік можа знайсці наступныя параметры ў меню:
File
The File падменю змяшчае розныя элементы, звязаныя з доступам files, імпарт-экспарт VCD files, друк і чытанне/запіс files і выходзіць.
Рэдагаваць
Падменю «Праўка» выкарыстоўваецца для выканання розных службовых функцый, такіх як змяненне прадстаўлення даных значэнняў у падакне хвалі. Выкарыстоўваючы параметры ў падменю «Праўка», карыстальнік можа змяняць фармат дадзеных сігналаў, перастаўляць іх, зрушваць, абрэзаць, вылучаць, групаваць сігналы, каментаваць сігналы, змяняць колер сігналаў і г.д.
пошук
Падменю «Пошук» выкарыстоўваецца для выканання пошуку па імёнах сетак і значэннях. Гэта дапамагае выконваць функцыі на розных узроўнях іерархіі сігналаў і асобнікаў у VCD file.
Час
Падменю часу змяшчае набор функцый, якія выконваюцца кнопкамі навігацыі і панэлі стану.
Ён дазваляе выкарыстоўваць такія простыя, звязаныя з часам функцыі, як маштабаванне, пераход да пэўнага моманту часу, зрух сігналу ў пэўным кірунку і г.д.
Маркер
Падменю маркера выкарыстоўваецца для выканання розных маніпуляцый з маркерам, а таксама для кіравання пракруткай па-за экранам.
Гэта дае магчымасць дадаваць шматлікія маркеры ў акно сігналу. Дапускаецца максімум 26 маркераў імёнаў, і час для ўсіх павінен быць розным.
a. Каб дадаць маркеры ў акне сігналу
Пстрыкніце левай кнопкай мышы ў патрэбнай кропцы, дзе вы хочаце размясціць маркер, і націсніце ALT + N. Гэта размесціць названы маркер (A, B, C і г.д.) у патрэбнай кропцы. Карыстальнік можа працягваць рабіць гэта ў 26 розных месцах.
Каб параўнаць значэнне часу ва ўсіх маркерах месцаў, выберыце Меню → Маркеры → Паказаць дадзеныя маркера змены.
Гэта адкрые акно са значэннем часу на кожным маркеры. Карыстальнік можа ўручную адзначыць значэнне часу на кожным размешчаным маркеры і адняць іх, каб вылічыць розніцу ў часе паміж 2 маркерамі.
b. Каб выдаліць маркер у акне сігналу
Карыстальнік можа перайсці ў Меню → Маркеры → Збіраць названы маркер. Гэта выдаліць апошні маркер, размешчаны ў акне сігналу. Карыстальнік можа выдаліць усе названыя маркеры, перайшоўшы ў Меню → Маркеры → Сабраць усе названыя маркеры (малюнак 12).
На малюнку 13 мы бачым, як змяніліся колеры сігналаў. Вы можаце назіраць Пусты сігнал, дададзены ў акно сігналу, а таксама з каментарыем - Пусты сігнал.
Таксама звярніце ўвагу на наяўнасць 6 названых маркераў (A – E) і вылічэнне значэння часу паміж гэтымі маркерамі ў ps.
View
The View падменю выкарыстоўваецца для кіравання рознымі атрыбутамі, звязанымі з графічным адлюстраваннем элементаў стану, а таксама значэнняў у падакне сігналу. З гэтага меню вы можаце пераўтварыць акно сігналу ў чорна-белае або каляровае. The View падменю таксама дазваляе змяняць вымярэнне часу ў дыяпазоне ад секунд (сек) да фікасекунд (фс). Карыстальнік можа знайсці гэтую опцыю View → Маштаб да вымярэння часу → fs.
Дапамога
Падменю даведкі змяшчае параметры для ўключэння анлайн-даведкі, а таксама для адлюстравання інфармацыі аб версіі праграмы.
Заключэнне
Гэты дакумент быў створаны, каб дапамагчы карыстальніку ў паспяховым мадэляванні іх канструкцыі і праверцы функцыянальнасці шляхам карэкціроўкі складання неабходнага тэставага стэнда і выкарыстання Icarus Verilog разам з GTKWave для адлюстравання сігналаў і назірання за вынікамі.
Гісторыя версій
Рэвізія | Дата | Апісанне |
1.00 | 20 мая 2024 г | Першапачатковы выпуск. |
R19US0011EU0100 Рэд.1.0
20 мая 2024 г
© 2024 Renesas Electronics
Дакументы / Рэсурсы
![]() |
Праграмнае мадэляванне RENESAS ForgeFPGA [pdfКіраўніцтва карыстальніка REN_r19us0011eu0100, праграмнае мадэляванне ForgeFPGA, праграмнае забеспячэнне ForgeFPGA, ForgeFPGA, мадэляванне ForgeFPGA, праграмнае мадэляванне, мадэляванне, праграмнае забеспячэнне |