RENESAS ForgeFPGA ሶፍትዌር ማስመሰል
ጠቃሚ መረጃ
ማስመሰል የተለያዩ የግብአት ማነቃቂያዎችን በዲዛይኑ ላይ በተለያየ ጊዜ የመተግበር ቴክኒክ ነው የ RTL ኮድ የታሰበውን ባህሪ ያሳያል። የንድፍ ጥንካሬን ለማረጋገጥ ጥቅም ላይ ይውላል. ማስመሰል ለተጠቃሚው ይፈቅዳል view በንድፍ ውስጥ የንድፍ መግለጫው እንዴት እንደሆነ ለመረዳት ተዛማጅ ምልክቶችን የጊዜ ዲያግራም file ጠባይ ያደርጋል።
Testbenches ለማስመሰል የሚያገለግሉ የኮድ ቁርጥራጮች ናቸው። ቀላል የሙከራ ቤንች በሙከራ ደረጃ ላይ ያለውን ክፍል (UUT) ያፋጥነዋል እና ግቤቱን ያንቀሳቅሰዋል። Go Configure ሶፍትዌር በሙከራ ቤንች ውስጥ ከሚቀርቡት ማነቃቂያዎች ጋር የማስመሰል ሞገዶችን ለመመልከት Icarus Verilog (iVerilog) እና GTKWaveን ይጠቀማል።
ይህ ሰነድ ኢካሩስን በሲስተምዎ ላይ ሲጭኑ መወሰድ ያለባቸውን እርምጃዎች እና የተሳካ ማስመሰልን እንዴት እንደሚሰራ ይገልጻል።
Icarus Verilog በመጫን ላይ
a. የ Icarus Verilog (IVerilog) የቅርብ ጊዜውን ስሪት ከ https://bleyer.org/icarus/
b. IVerilog ወደ PATH ማከልዎን ያረጋግጡ እና GTKwaveን እንዲጭን ያድርጉት (ስእል 1 ይመልከቱ)
c. Go Configure Software የሚለውን ይክፈቱ እና ክፍሉን ይምረጡ፡ SLG47910(Rev BB) Forge Workshop ለመክፈት (ስእል 2 ይመልከቱ)።
d. ከላይ በመሳሪያ አሞሌው መካከል ያለውን የ FPGA አርታዒን ጠቅ ያድርጉ ወይም ተጠቃሚው በመስኮቱ መሃል ያለውን የ FPGA ኮር መዋቅር ላይ ሁለቴ ጠቅ ማድረግ ይችላል።
e. የፎርጅ ወርክሾፕ የሚባል አዲስ መስኮት ይከፈታል። ከላይ ባለው ምናሌ የመሳሪያ አሞሌ ውስጥ አማራጮች → መቼቶች ላይ ጠቅ ያድርጉ። በቅንብሮች መገናኛ ሳጥን ውስጥ በተጠቃሚ ቅንብሮች ትር ስር ወደ መሳሪያዎች ይሂዱ። ለሁለቱም Icarus Verilog እና GTKWave "የስርዓት አካባቢን ይጠቀሙ" የሚለውን አይምረጡ። ወደ Iverilog እና GTKWave የሚወስደውን መንገድ ወደ ተሰጠው ቦታ ያክሉ (ስእል 4 ይመልከቱ)።
የሙከራ ቤንች ለመምሰል ሁላችሁም ተዘጋጅተዋል እና ከላይ ያሉት እርምጃዎች Go Configure ሶፍትዌር ላይ testbench ሲመስሉ GTKWave በራስ-ሰር መጀመሩን ያረጋግጣሉ።
ቴስትቤንች
ማንኛውንም ስርዓት በተሳካ ሁኔታ በመተግበር ረገድ በጣም ወሳኝ እርምጃ ንድፉን እና ተግባራዊነቱን ማረጋገጥ ነው. ሃርድዌርን ከተተገበረ በኋላ ውስብስብ ስርዓትን ማረጋገጥ የጥበብ ምርጫ አይደለም. በገንዘብ፣ በጊዜ እና በንብረቶች ረገድ ውጤታማ አይደለም። ስለዚህ፣ በFPGA ጉዳይ፣ የቬሪሎግ ምንጭ ኮድን ለመሞከር testbench ጥቅም ላይ ይውላል።
11 ቢት የሆነ ግብአት አለን እንበል እና መሳሪያውን ለሁሉም ሊሆኑ የሚችሉ የግቤት ጥምር ዋጋዎች ማለትም (211) መሞከር እንፈልጋለን። ይህ በጣም ብዙ ቁጥር ያለው ጥምረት እንደመሆኑ መጠን በእጅ መሞከር የማይቻል ነው. በእንደዚህ ዓይነት ሁኔታዎች, የፈተና ወንበሮች በጣም ጠቃሚ ናቸው, ምክንያቱም ንድፉን በራስ-ሰር ለመሞከር ስለሚችሉት ሁሉም ሊሆኑ የሚችሉ እሴቶች እና ስለዚህ, የሙከራ ዲዛይን አስተማማኝነት ያረጋግጡ. Verilog Testbenches ምንም አይነት አካላዊ ሃርድዌር ሳያስፈልጋቸው ንድፎችን ለመምሰል እና ለመተንተን ያገለግላሉ።
በሙከራ ላይ ያለ ንድፍ፣ በአህጽሮት DUT፣ ልንፈትነው የምንፈልገው ተግባራዊነት ሊሰራ የሚችል ሞጁል ነው። በሌላ አነጋገር ልንፈትነው የምንፈልገው የወረዳ ንድፍ ነው። በVerilog ውስጥ ካሉት ሶስት የሞዴሊንግ ስታይል አንዱን በመጠቀም የእኛን DUT መግለጽ እንችላለን - ጌት ደረጃ፣ ዳታ ፍሰት ወይም ባህሪ።
የሙከራ ቤንች ሊዋሃድ የሚችል አይደለም፣ስለዚህ ለሲሙሌሽን ዓላማዎች ብቻ ጥቅም ላይ ይውላል። ይህ ተጠቃሚው የሙከራ ቤንች ለመጻፍ እንደ “for”፣ “$ display” እና “$ ሞኒተር” ወዘተ የመሳሰሉ የ Verilog ግንባታዎችን ሙሉ ክልል እንዲጠቀም ያስችለዋል። ቀላል የሙከራ ቤንች በሙከራ ደረጃ (UUT) ወይም በሙከራ ስር ያለ መሳሪያ (DUT) እና ግብዓቶችን ያሽከረክራል።
አንድ Testbench መረዳት
በTestbench ውስጥ የጊዜ መጠን ፍቺ
ሲሙሊንግ ሲደረግ ሶፍትዌሩ ሰዓቱ እንዴት እንደተገለጸ ማወቅ አለበት። የመዘግየቱ አሃድ የተገለጸው `የጊዜ መለኪያ መመሪያን በመጠቀም ነው፣ እሱም የሰዓት አሃዱን እና እሱን ለሚከተሉ ሞጁሎች ትክክለኛነት ይገልጻል። የ `Timescale #1 በጊዜ አንፃር ምን ማለት እንደሆነ ለመወሰን ይረዳል። # በጊዜ መለኪያ በተገለጸው የጊዜ አሃድ መሰረት በስርአቱ ውስጥ የሚስተዋወቀውን መዘግየቱን ለመወሰን ይጠቅማል። ስለዚህ #1 ማለት የሰአት_አሃዱ በ ns ውስጥ ከሆነ 1 ns መዘግየት ማለት ነው።
አገባብ፡
`የጊዜ መለኪያ / /
time_unit የ#1 መዘግየት የሚወክለው የጊዜ መጠን ነው። የጊዜ_ትክክለኛነት መሰረት ከግዜ አሃዶች አንጻር ስንት የአስርዮሽ ትክክለኛነት ነጥቦችን ይወክላል። (በስእል 23 ያለውን መስመር 5 ይመልከቱ)
በተመሳሳይ ንድፍ ውስጥ የተለያዩ የጊዜ ክፍሎችን ለመጠቀም የጊዜ መለኪያ ግንባታዎችን መጠቀም እንችላለን. ተጠቃሚው የዘገየ ዝርዝር መግለጫዎች ሊዋሃዱ የማይችሉ እና ወደ ሃርድዌር ሎጂክ ሊለወጡ እንደማይችሉ ማስታወስ አለበት። የመዘግየቱ ተግባራት ሙሉ ለሙሉ ለማስመሰል ዓላማዎች ናቸው. $ጊዜ እና $እውነተኛ ጊዜ የስርዓት ተግባራት የአሁኑን ጊዜ ይመለሳሉ እና ነባሪው የሪፖርት አቀራረብ ቅርጸት በሌላ የስርዓት ተግባር ሊቀየር ይችላል $timeformat .
Exampላይ:
`የጊዜ ስኬል 10us/100ns
`የጊዜ መለኪያ 1ns/1ሴ
# 10 ዳግም ማስጀመር = 1; // ምልክቱን በ 10 ns ያዘገያል
# 0.49 $ ማሳያ ("T = %0t በጊዜ #0.49", $ realtime);
የተገለፀው መዘግየት #0.49 ሲሆን ይህም ከግማሽ አሃድ ጊዜ ያነሰ ነው። ነገር ግን የሰዓት ትክክለኝነት 1ps ነው ተብሎ የተገለፀው እና ስለዚህ አስመሳይ ከ 1ns ማነስ ስለማይችል የተሰጠውን የዘገየ መግለጫ እንዲሸፍን እና 0ns እንዲያፈራ ያደርገዋል። ስለዚህ፣ ይህ መግለጫ ምንም አይነት መዘግየት ማቅረብ አልቻለም።
የማስመሰል መዝገብ
ቲ = 1 በጊዜ #0.49
የሞዱል መግለጫ
በማንኛውም የሙከራ ቤንች ውስጥ የሞዱል መግለጫ ከዋናው የVerilog ኮድ የተለየ ነው። በሙከራ ቤንች ውስጥ፣ ሞጁሉ ከሱ ጋር ያለ ምንም ተርሚናል ወደቦች ይታወጃል። (በስእል 25 ያለውን መስመር 5 ይመልከቱ)
አገባብ፡
ሞጁል ;
የሞዱል መግለጫው በዋናው ንድፍ ውስጥ ቀደም ብሎ የተገለጹትን የግብአት እና የውጤት ምልክቶችን በመግለጽ ይከተላል file.
በምስሉ ወቅት ለመንዳት እና ለመከታተል ሁለት የሲግናል አይነቶችን እንጠቀማለን። አዲስ እሴት እስኪመደብለት ድረስ የ reg datatype እሴቱን ይይዛል። ይህ የውሂብ አይነት ሁልጊዜ ወይም በመነሻ ብሎክ ውስጥ ብቻ እሴት ሊመደብ ይችላል።
የሽቦ ዳታ አይነት እንደ አካላዊ ግንኙነት ነው። በወደብ የሚነዳውን እሴት ይይዛል፣ መግለጫ ይመድባል፣ ወይም reg. ይህ የውሂብ አይነት በመነሻ ወይም ሁልጊዜ አግድ ላይ መጠቀም አይቻልም። ማንኛውም ግቤት እና ኢንቲጀር መግለጫ እንዲሁ በዚህ ክፍል ውስጥ ተከናውኗል።
Exampላይ:
Reg a,b; // በ HDL ኮድ ውስጥ ያለው ግቤት በ testbench ውስጥ reg ተብሎ ይገለጻል።
ሽቦ y; // በ HDL ውስጥ የውጤት ምልክት በ testbench ውስጥ እንደ ሽቦ ይገለጻል።
DUT ፈጣን
የሙከራ ቤንች አላማ የእኛ DUT ሞጁል እየሰራ መሆኑን ማረጋገጥ ነው። ስለዚህ፣ ሞጁሉን ለመፈተሽ የዲዛይን ሞጁላችንን በቅጽበት ማድረግ አለብን።
አገባብ፡
(. (ምልክት1)፣ ምልክት1>(ሲግናል2));
Exampላይ:
ALU d0 (.a(a)/// ሲግናል “a” በ ALU ውስጥ በALU_tb ሞጁል ውስጥ ከ “a” ጋር መገናኘት አለበት።
.b(b)/// ሲግናል “b” በ ALU ውስጥ በALU_tb ሞጁል ውስጥ ከ “b” ጋር መያያዝ አለበት።
.c(c)) ፤// በ ALU ውስጥ ያለው የ “c” ምልክት በ ALU_tb ሞጁል ውስጥ ከ “c” ጋር መያያዝ አለበት።
የ DUT ሞጁሉን ALU ለሙከራ ሞጁል አፋጣኝ አድርገነዋል። የአብነት ስም (d0) የተጠቃሚው ምርጫ ነው። ምልክቶቹ ከወር አበባ ጋር "" ከፊት ለፊታቸው በ ALU ሞጁል ውስጥ ያሉት ምልክቶች ስሞች አሉ ፣ በሙከራ አግዳሚ ወንበር ላይ የሚገናኙት ሽቦ ወይም ሬጅ ግን በቅንፍ () ውስጥ ካለው ምልክት ቀጥሎ ነው። ማንኛውም የተቀነባበረ የስህተት መልእክት ስህተቱ የተከሰተበትን የመስመር ቁጥር በትክክል እንዲጠቁም እያንዳንዱን የወደብ ግንኙነት በተለየ መስመር ኮድ ማድረግ ይመከራል። እነዚህ ግንኙነቶች በስም የተሰሩ ስለሆኑ, የሚከሰቱበት ቅደም ተከተል አግባብነት የለውም.
የሙከራ ቤንች ሞጁል የተለያዩ የሲግናል ስሞች ላሉት ሞጁሎች የ DUT ቅጽበታዊነት ሊሠራ ይችላል። የምልክቶቹ ትክክለኛ ካርታ በቅጽበት ጊዜ አስፈላጊ ነው.
Example:
ALU d0 (.a(A)፣//ሲግናል “a” በ ALU ውስጥ ከ “A” ጋር በALU_tb ሞጁል መገናኘት አለበት።
.clk(ሰዓት)፣ // ሲግናል “clk” በ ALU ውስጥ ከ “ሰዓት” ALU_tb ሞጁል ጋር መገናኘት አለበት።
.ውጭ(ውጭ)); // በ ALU ውስጥ ያለው "ውጭ" ምልክት በ ALU_tb ሞጁል ውስጥ ከ "OUT" ጋር መገናኘት አለበት
ሁልጊዜ እና በTestbench ውስጥ የመጀመሪያ አግድ
በቬሪሎግ ውስጥ ሁለት ተከታታይ ብሎኮች አሉ የመጀመሪያ እና ሁልጊዜ። ማነቃቂያውን ተግባራዊ የምናደርገው በእነዚህ ብሎኮች ውስጥ ነው።
የመጀመሪያ እገዳ
የመጀመርያው እገዳ አንድ ጊዜ ብቻ የሚሰራ እና የማገጃው የመጨረሻ መስመር ሲፈፀም የሚቋረጠው። ማነቃቂያው ወደ መጀመሪያው እገዳ ተጽፏል. (መስመር 54-72 በስእል 5 ይመልከቱ)
አገባብ:
..
የመጀመሪያ ጅምር
$ መጣል።file();
$ dumpvars ();
..(ማነቃቂያ አስገባ)
መጨረሻ
የመነሻ ብሎክ አፈፃፀሙን የሚጀምረው በሲሙሌሽኑ መጀመሪያ ላይ በሰዓቱ t = 0 ነው። በመጀመርያ እና በመጨረሻው መካከል ካለው የመጀመሪያው መስመር ጀምሮ እያንዳንዱ መስመር መዘግየት እስኪያልቅ ድረስ ከላይ እስከ ታች ይሠራል። መዘግየቱ ሲደርስ የዚህ ብሎክ አፈፃፀም የዘገየ ጊዜ (የ 10 ጊዜ ክፍሎች) እስኪያልፍ ድረስ ይጠብቃል እና እንደገና አፈፃፀምን ይወስዳል።
ተጠቃሚው ሁሉንም ውህዶች በእጅ ከማስገባት ይልቅ በዚህ የመጀመሪያ ብሎክ ውስጥ loops (ለ፣ ካለ፣ ካለ) ማነቃቂያዎችን መግለፅ ይችላል።
Example:
የመጀመሪያ ጅምር
A = 0; b = 0; // ማስፈጸም ጀምር
#10 ሀ = 0; ለ = 1; // ማስፈጸሚያ በ t = 10-unit ጊዜ ነው
#10 ሀ = 1; ለ = 0; // ማስፈጸሚያ በ t = 20-unit ጊዜ ነው
መጨረሻ
መጣል Files
ማስታወስ ያለብዎት ሌላው ነገር የ$ መግለጫ ነው።መጣልfiles እና $dumpvars በመነሻው እገዳ ውስጥ (በስእል 55 ውስጥ ያለውን መስመር 56-5 ይመልከቱ). የ$መጣልfile በመረቦች እና በመመዝገቢያ ዋጋዎች ላይ የተደረጉ ለውጦችን ለመጣል ጥቅም ላይ ይውላል file እሱ እንደ መከራከሪያው ተሰይሟል።
ለ exampላይ:
$መጣልfile("alu_tb.vcd");
ለውጦቹን በ a file alu_tb.vcd የሚባል ለውጦቹ የተመዘገቡት በ file ቪሲዲ ይባላል file እሴት ለውጥ መጣያ ማለት ነው። ቪሲዲ (የዋጋ ለውጥ መጣያ) ስለ እሴት ለውጦች ሁሉንም መረጃዎች ያከማቻል። ከአንድ ዶላር በላይ መጣል አንችልም።file በ Verilog simulation ውስጥ ያሉ መግለጫዎች.
የ$dumpvars የትኞቹ ተለዋዋጮች መጣል እንዳለባቸው ለመለየት ጥቅም ላይ ይውላል (በ file በ$ dump ተጠቅሷልfile). ለመጠቀም ቀላሉ መንገድ ያለ ምንም ክርክር ነው. የ$dumpvars አጠቃላይ አገባብ ነው።
$dumpvars ( <, >);
በመሠረቱ የትኞቹ ሞጁሎች, እና በሞጁሎች ውስጥ የትኞቹ ተለዋዋጮች እንደሚጣሉ ልንገልጽ እንችላለን. ይህንን ለመጠቀም ቀላሉ መንገድ ደረጃውን ወደ 0 እና የሞጁል ስም እንደ ከፍተኛ ሞጁል (በተለምዶ የላይኛው የሙከራ ቤንች ሞጁል) ማዘጋጀት ነው.
$dumpvars(0, alu_tb);
ደረጃው ወደ 0 ሲዋቀር፣ እና የሞጁሉ ስም ብቻ ሲገለጽ፣ ሁሉንም የዚያ ሞጁል ተለዋዋጮች እና በዚህ ከፍተኛ ሞጁል የተቀናጁ ሁሉንም ዝቅተኛ-ደረጃ ሞጁሎች ውስጥ ያሉትን ሁሉንም ተለዋዋጮች ይጥላል። በዚህ የላይኛው ሞጁል ውስጥ ያለ ማንኛውም ሞጁል ካልተቀየረ ተለዋዋጭነቱ አይሸፈንም። አንድ ተጨማሪ ነገር፣ የ$ መግለጫመጣልfile ከ$dumpvars ወይም ከማናቸውም ሌላ የሥርዓት ሥራዎች መጣልን የሚገልጽ መሆን አለበት። እነዚህ ቆሻሻዎች files ከማነቃቂያ ግብአቶች በፊት መታወጅ አለበት፣ በእነዚህ ቆሻሻዎች ውስጥ ምንም ዋጋ አይቀመጥም። files.
ሁልጊዜ አግድ
ከመጀመሪያዎቹ መግለጫዎች በተቃራኒ ፣ ምንም እንኳን አፈፃፀሙ የሚጀምረው በሰዓቱ t = 0 ቢሆንም ፣ ሁልጊዜ እገዳው በተደጋጋሚ ይሠራል።ample፣ የሰዓት ምልክቱ እንደ Flip-flops ላሉ ተከታታይ ሰርኮች አሠራር አስፈላጊ ነው። ያለማቋረጥ መቅረብ አለበት። ስለዚህ የሰዓት አሠራሩን ኮድ በሙከራ ቤንች ውስጥ እንደሚከተለው መጻፍ እንችላለን (በሥዕል 52 ላይ ያለውን መስመር 5 ይመልከቱ)።
ሁልጊዜ
#10 clk = ~ clk;
endmodule
ከላይ ያለው መግለጫ ከ 10 ns በኋላ ተፈጻሚ ይሆናል t = 0. የ clk ዋጋ ከቀድሞው ዋጋ ከ 10 ns በኋላ ይገለበጣል. ስለዚህ, የ 20 ns የልብ ምት ስፋት የሰዓት ምልክት ማመንጨት. ስለዚህ, ይህ መግለጫ የ 50 ሜኸር ድግግሞሽ ምልክት ያመነጫል. ትኩረት መስጠት አስፈላጊ ነው, የምልክቱ አጀማመር ሁልጊዜ ከማገድ በፊት ይከናወናል. የመነሻውን ክፍል ካላደረግን, የ clk ምልክት x ከ t - 0 ይሆናል, እና ከ 10 ns በኋላ, ወደ ሌላ x ይገለበጣል.
ራስን መፈተሽ Testbench
ራሱን የሚፈትሽ የሙከራ ቤንች የአሁኑን ሁኔታ ለመፈተሽ መግለጫን ያካትታል።
- $ማሳያ የስርዓተ ክወናው ተግባር በዋናነት የሚያገለግለው የማስመሰልን ፍሰት ለመከታተል የማረም መልዕክቶችን ለማሳየት ነው።
የመጀመሪያ ጅምር
A = 0; ለ = 0; ሐ = 0; #10; // ግብዓት ይተግብሩ ፣ ይጠብቁ
ከሆነ (y! == 1) ከጀመረ
$ ማሳያ ("000 አልተሳካም"); // አረጋግጥ
ሐ = 1; #10; // ግቤትን ይተግብሩ ፣ ይጠብቁ
መጨረሻ
ሌላ ( y! == 0) ከጀመረ
$ ማሳያ ("001 አልተሳካም") // አረጋግጥ
ለ = 1; ሐ = 0; #10; መጨረሻ
ካልሆነ (y!==0)
$ ማሳያ ("010 አልተሳካም"); // አረጋግጥ
መጨረሻ
endmodule
$ማሳያ የተለዋዋጮችን፣ ሕብረቁምፊዎችን ወይም መግለጫዎችን እሴቶችን ለማሳየት ያገለግላል። ከላይ ካለው exampሌላ ከሆነ ማንኛውም ሉፕ ሲረካ የማስመሰያው ምዝግብ ማስታወሻው የየራሱን $ ያሳያል።ማሳያ መግለጫ. በሕብረቁምፊዎች መጨረሻ ላይ በነባሪ አዲስ መስመር አለ።
$ማሳያ ("ጊዜ = %t, A = %b, B = %b, C = % b", $ጊዜ, A,B,C);
በጥቅሶቹ ውስጥ የተጠቀሱት ገጸ-ባህሪያት እንደነበሩ ይታተማሉ. ከ% ጋር ያለው ፊደል የሕብረቁምፊውን ቅርጸት ያመለክታል። ሁለትዮሽ ውሂብን ለመወከል %b እንጠቀማለን። በቅደም ተከተል አስርዮሽ፣ ሄክሳዴሲማል እና ስምንትዮሽ ለመወከል %d፣ %h፣ %o ልንጠቀም እንችላለን። %g እውነተኛ ቁጥሮችን ለመግለጽ ያገለግላል። እነዚህ በተጠቀሰው ቅደም ተከተል ከጥቅሱ ውጭ ባሉ ዋጋዎች ይተካሉ. ለ example, ከላይ ያለው መግለጫ በሲሙሌሽን መዝገብ ውስጥ ይታያል: ጊዜ = 20, A = 0, B = 1, C = 0
ጠረጴዛ 1. የቬሪሎግ ሰንጠረዥ ቅርጸቶች
ክርክር | መግለጫ |
%ሰ፣ %H | በሄክሳዴሲማል ቅርጸት አሳይ |
%d፣ %D | በአስርዮሽ ቅርጸት አሳይ |
%b፣ %B | በሁለትዮሽ ቅርጸት አሳይ |
%m፣ %M | ተዋረዳዊ ስም አሳይ |
%s፣ %S | እንደ ሕብረቁምፊ አሳይ |
%t፣ %ቲ | በጊዜ ቅርጸት አሳይ |
%f፣ %F | 'እውነተኛ'ን በአስርዮሽ ቅርጸት አሳይ |
%e፣ %E | 'እውነተኛ'ን በአርቢነት አሳይ |
$ማሳያ በዋነኛነት ውሂቡን ወይም ተለዋዋጭውን ያትማል ልክ በዚያ ቅጽበት ልክ በ C ውስጥ እንዳለ። $ መጥቀስ አለብን።ማሳያ ለማንኛውም ጽሑፍ አለብን view በማስመሰል መዝገብ ውስጥ.
- $ጊዜ
$ጊዜ የአሁኑን የማስመሰል ጊዜ የሚመልስ የስርዓት ተግባር ነው።
- $ተቆጣጠር
$ተቆጣጠር የተጻፈበትን ዳታ ወይም ተለዋዋጭ ይከታተላል እና ተለዋዋጭ በተለወጠ ቁጥር ያትማል
የተለወጠው ዋጋ. ማንኛውም ክርክሮቹ ባገኙ ቁጥር ወደ $ ማሳያ በመደወል ተመሳሳይ ውጤት ያስገኛል።
ዘምኗል። $ተቆጣጠር የሚከታተል እና የሚከታተል እና ዋና ክር ዳራ ውስጥ እንዲሠራ እንደ ተፈለፈለ ተግባር ነው
የእሱ ነጋሪ እሴት ለውጦችን ያሳያል። $ተቆጣጠር ከ$ ጋር ተመሳሳይ አገባብ አለው።ማሳያ.
$ተቆጣጠር(“ጊዜ = %t፣ A = %b፣ B = %b፣ C = % b”፣ $ጊዜ, A,B,C);
በስእል 7 ላይ ቴስትቤንች በራስ ለመገምገም አዲስ የኮዶች መስመሮች መጨመሩን ማየት ይችላሉ። የ$ አቀማመጥማሳያ እና $ተቆጣጠር በተለያዩ የ testbench ክፍሎች ያሉት መግለጫዎች የተለያዩ ውጤቶችን ይሰጣሉ (ስእል 8 ይመልከቱ)። $ጊዜ በእነዚህ መግለጫዎች ውስጥ የተጠቀሱት እሴቱ የሚታተምበትን ጊዜ ያትማል። በተመሳሳይ ጊዜ ዩኒት 170000 ይላሉ, በ $ ምክንያት ለ A እና B ዋጋ እንዴት ልዩነት እንዳለ ማየት እንችላለን.ማሳያ እና $ተቆጣጠር መግለጫዎች.
GTKWave ሶፍትዌር
GTKWave ሙሉ ለሙሉ ተለይቶ የቀረበ GTK+ ሞገድ ነው። viewer ለ Unix፣ Win32 እና Mac OSX LXT፣ LXT2፣ VZT፣ FST እና GHW የሚያነብ fileዎች እንዲሁም መደበኛ ቪሲዲ/ኢቪሲዲ files እና ይፈቅዳል ያላቸውን viewing ይፋዊ ነው። webጣቢያ በ http://gtkwave.sourceforge.net/ . GTKWave ይመከራል viewer በ Icarus Verilog የማስመሰል መሳሪያ.
አንዴ ተጠቃሚው የዲዛይኑን ተግባራዊነት ለመፈተሽ የፈተና ቤንች በተሳካ ሁኔታ ከተፈጠረ፣ ተጠቃሚው አሁን የGTKwave ሶፍትዌርን ለመጠቀም view ሞገዶች.
የGTKwave ሶፍትዌርን ወደ ላይ ለማስጀመር view ሞገዶች፣ ተጠቃሚው በመሳሪያ አሞሌው ላይኛው ክፍል ላይ ወይም ከዋናው ሜኑ Tools→ Simulation→ አስመሳይ ቴስትቤንች ላይ ጠቅ ማድረግ አለበት። የአገባብ ስህተቶች ከሌሉ በዲዛይኑ ላይ በመመስረት GTKwave በራስ-ሰር መጀመር አለበት ወይም በ testbench ውስጥ ያሉት ማነቃቂያዎች በመስኮቱ የሎገር ክፍል ውስጥ ይታያሉ።
የGTKWave ሶፍትዌር የ.vcd ቅርጸት መጣያ ይከፍታል።file በራስ-ሰር. የGTKWave መስኮት ሲከፈት የሞገድ ቅጹን አያሳይም። ይህ ተጠቃሚው የትኛውን ምልክት እንደሚፈልግ እንዲመርጥ እድል ይሰጠዋል view እና አስተውል. ምልክቱን ለመምረጥ ተጠቃሚው ማሳየት ያስፈልገዋል, ተጠቃሚው በ SST ትር ስር በመስኮቱ በግራ በኩል ባለው ሞጁል / ምሳሌ ስም ላይ ጠቅ ያድርጉ. የእያንዳንዱን ምሳሌ + ን ጠቅ በማድረግ ከዚህ ምሳሌ ጋር የሚዛመዱ ምልክቶችን ከታች ባለው ክፍል ውስጥ ማየት ይችላሉ። ከዚያ የተፈለገውን ምልክት መጎተት እና መጣል ወይም በሲግናል መስኮቱ ውስጥ እንዲታዩ ሁለት ጊዜ ጠቅ ማድረግ ይችላሉ። እንዲሁም ሁሉንም (CTRL + A) በመምረጥ ወደ ሲግናሎች መስኮቱ ውስጥ ማስገባት ይችላሉ (ስእል 9 ይመልከቱ).
ምልክቶቹ አሁን ወደ ሲግናል መስኮቱ ተጨምረዋል ነገር ግን ገና መምሰል አልቻለም። የሚፈለጉትን ምልክቶች ወደ ሲግናል መስኮቱ ካከሉ በኋላ ጠቅ ያድርጉ ምልክቶቹን አሁን ካለው የዊንዶው ስፋት ጋር ለመግጠም እና ከዚያም ከዳግም ጭነት ምልክቶችን እንደገና ይጫኑ
በመሳሪያ አሞሌው ላይ ምልክት አለ። አሁን ምልክቶቹን በየእሴቶቻቸው ማየት ይችላሉ።
የሲግናል እሴቶች
በነባሪ ፣ የምልክቶቹ እሴቶች በሄክሳዴሲማል ቅርጸት እና ሁሉም ሞገዶች አረንጓዴ ቀለም አላቸው (በትክክል እየሮጡ ከሆነ)።
ተጠቃሚው ምልክቱን በቀኝ ጠቅ በማድረግ እና የውሂብ ፎርማትን ወይም የቀለም ቅርጸትን በመምረጥ የእነዚህን ምልክቶች ባህሪያት መለወጥ ይችላል። ተጠቃሚው በምልክቶች ቡድን መካከል ክፍሎችን ለመስራት ባዶ ምልክት ማስገባት ይችላል። የተፈለገውን የጨረር ውጤት ሲያገኙ, በመሄድ ውቅሮችዎን ማስቀመጥ ይችላሉ File → Save ጻፍ File.
GTKWave የመሳሪያ አሞሌ
የመሳሪያ አሞሌ (ስእል 10 ይመልከቱ) ተጠቃሚው ለምልክቱ መሰረታዊ ተግባራትን እንዲያከናውን ያስችለዋል. እያንዳንዱን አማራጭ በመሳሪያ አሞሌው ላይ ከግራ ወደ ቀኝ እንወያይ።
- የምናሌ አማራጮችበዚህ አማራጭ ስር ማድረግ እንችላለን view ከሶፍትዌሩ ጋር ለመጫወት የሚያገለግሉ ሁሉም የሶፍትዌሩ የተለያዩ ባህሪዎች። በዚህ ምናሌ አማራጭ ስር ያሉት ዝርዝሮች በዚህ የተጠቃሚ መመሪያ ክፍል 8 ተሸፍነዋል።
- ዱካዎችን ይቁረጡ: ከሲግናል መስኮቱ የተመረጠ ምልክትን ለመሰረዝ / ለመቁረጥ ያገለግላል
- ዱካዎችን ቅዳ: የተመረጠውን ምልክት ከምልክት መስኮቱ ለመገልበጥ ጥቅም ላይ ይውላል
- ዱካዎችን ለጥፍ: የተቀዳ / የተቆረጠ ዱካ በሲግናል መስኮቱ ውስጥ በተለያየ ቦታ ላይ ሊለጠፍ ይችላል
- የአካል ብቃትን አጉላ: ተጠቃሚው ለማሳየት በመረጠው የዊንዶው መጠን መሰረት ምልክቶችን ለመግጠም ያገለግላል
- አሳንስ: በሲግናል መስኮቱ ውስጥ ለማጉላት ይጠቅማል
- አሳንስየምልክት መስኮቱን ለማጉላት ይጠቅማል
- አጉላ ቀልብስበሲግናል መስኮቱ ላይ ያለውን ማጉላት/ማጉላት ለመቀልበስ ይጠቅማል
- ለመጀመር አጉላ: ይህ የሲግናል መስኮቱን ያሳድጋል, የምልክቶቹ መጀመሪያ ጊዜ ያሳያል.
- አጉላ እስከ መጨረሻይህ የምልክቶቹ የመጨረሻ ጊዜ የሚያሳየውን የሲግናል መስኮት ያሳድጋል
- የቀደመውን ጫፍ ያግኙ: ይህ የቀደመውን ጠርዝ የሚያመለክተው ጠቋሚውን ወደ ግራ በኩል ይለውጠዋል
- የሚቀጥለውን ጫፍ ያግኙ: ይህ ጠቋሚውን ወደ ቀኝ በማዞር የሚቀጥለውን ጠርዝ ያሳያል
- የታችኛው/የላይ ቦንድ ሸብልል።: ይህንን በመጠቀም ተጠቃሚው ማሳየት የሚፈልገውን የጊዜ ገደብ ማዘጋጀት እንችላለን. ለ example, የጊዜ ክፈፉን ከ 0 ሰከንድ እስከ 500 ns ማዋቀር እንችላለን, በዚህ ጊዜ ውስጥ ያሉትን ምልክቶች ብቻ ያሳያል.
- ዳግም ጫን፡ በሚታየው ምልክት ላይ ለውጥ በሚኖርበት ጊዜ ዳግም መጫን ይጫናል. በአዲሶቹ መመዘኛዎች መሰረት ምልክቱን እንደገና ይጭናል እና ያሳያል. ለ exampየምልክት ጊዜውን ከቀየርን በኋላ ምልክቱን በአዲስ በተዘጋጀው የጊዜ ገደብ ውስጥ ለማሳየት ምልክቱን እንደገና መጫን አለብን።
የምናሌ አማራጮች
ከGTKWave ሶፍትዌር ግራ ከላይኛው ጥግ ላይ ተጠቃሚው ሶስት ቋሚ መስመሮችን ጠቅ በማድረግ የሜኑ አማራጮችን ማግኘት ይችላል (ስእል 11 ይመልከቱ)። ተጠቃሚው በምናሌው አማራጮች ስር የሚከተሉትን አማራጮች ማግኘት ይችላል።
File
የ File ንዑስ ምናሌው ከመድረስ ጋር የተያያዙ የተለያዩ ነገሮችን ይዟል fileዎች፣ VCD ማስመጣት-ወደ ውጪ መላክ fileዎች፣ ማተም እና ማንበብ/መፃፍ files እና መውጣት.
አርትዕ
የአርትዕ ንዑስ ሜኑ እንደ ማዕበል ንዑስ መስኮት ውስጥ የእሴቶችን ውሂብ ውክልና መለወጥ ያሉ የተለያዩ የመገልገያ ተግባራትን ለማከናወን ይጠቅማል። በአርትዖት ንዑስ ሜኑ ስር ያሉትን አማራጮች በመጠቀም ተጠቃሚ የምልክቶቹን የመረጃ ቅርፀት መለወጥ፣ ማስተካከል፣ መቀየር፣ ማሳጠር፣ ማጉላት፣ የቡድን ምልክቶችን መስጠት፣ በምልክቶች ላይ አስተያየት መስጠት፣ የምልክት ምልክቶችን ቀለም መቀየር፣ ወዘተ.
ፍለጋ
የፍለጋ ንዑስ ምናሌው በተጣራ ስሞች እና እሴቶች ላይ ፍለጋዎችን ለማከናወን ያገለግላል። በቪሲዲ ውስጥ ባሉ ምልክቶች እና ሁኔታዎች በተለያዩ የሥርዓት ተዋረድ ተግባራትን ለማከናወን ይረዳል file.
ጊዜ
የሰዓት ንዑስ ምናሌው በአሰሳዎች እና በሁኔታ ፓነል አዝራሮች የተከናወኑ ተግባራት ልዕለ ስብስብ ይዟል።
ቀላል፣ ከግዜ ጋር የተገናኘ፣ እንደ ማጉላት፣ ወደ አንድ የተወሰነ የጊዜ ነጥብ መንቀሳቀስ፣ ምልክቱን ወደ አንድ አቅጣጫ መቀየር፣ ወዘተ የመሳሰሉ ተግባራትን ያስችላል።
ምልክት ማድረጊያ
የአመልካች ንዑስ ሜኑ በጠቋሚው ላይ የተለያዩ ማጭበርበሮችን ለማከናወን እና ከማያ ገጽ ውጪ ማሸብለልን ለመቆጣጠር ይጠቅማል።
በሲግናል መስኮቱ ላይ ብዙ ማርከሮችን የመጨመር ተግባርን ያስችላል። ቢበዛ 26 የስም ምልክቶች ይፈቀዳሉ እና የሁሉም ጊዜ የተለየ መሆን አለበት።
a. በሲግናል መስኮቱ ውስጥ ማርከሮችን ለመጨመር
ምልክት ማድረጊያው እንዲቀመጥ በሚፈልጉበት ቦታ ግራ ክሊክ ያድርጉ እና ALT + N ን ይጫኑ።ይህም የተሰየመ ምልክት (A,B,C, ወዘተ) በሚፈለገው ቦታ ያስቀምጣል. ተጠቃሚው ይህንን ለ26 የተለያዩ ቦታዎች ማድረጉን መቀጠል ይችላል።
በሁሉም ቦታዎች ላይ ያለውን የጊዜ ዋጋ ለማነፃፀር ሜኑ → ማርከሮች → የአመልካች ውሂብ ለውጥ አሳይ።
ይህ በእያንዳንዱ ማርከር ላይ ካለው የጊዜ እሴት ጋር መስኮት ይከፍታል። ተጠቃሚው በእያንዳንዱ ምልክት ማድረጊያ ላይ ያለውን የሰዓት ዋጋ በእጅ ያስተውል እና በ2 ማርከሮች መካከል ያለውን የጊዜ ልዩነት ለማስላት እነሱን መቀነስ ይችላል።
b. በሲግናል መስኮቱ ውስጥ ማርከርን ለማስወገድ
ተጠቃሚ ወደ ሜኑ → ማርከሮች → የተሰየመ ማርከር መሰብሰብ ይችላል። ይህ በሲግናል መስኮቱ ውስጥ የተቀመጠውን የመጨረሻ ስም ማርክ ያስወግዳል። ተጠቃሚ ወደ ሜኑ → ማርከሮች → ሁሉንም የተሰየሙ ማርከርን (ስእል 12) በመሰብሰብ ሁሉንም ስያሜዎች ማስወገድ ይችላል።
በስእል 13, የምልክት ቀለሞች እንዴት እንደተቀየሩ ማየት እንችላለን. በሲግናል መስኮቱ ላይ የተጨመረ ባዶ ሲግናል እንዲሁም በአስተያየት - ባዶ ሲግናል መመልከት ይችላሉ።
እንዲሁም 6 የተሰየሙ ማርከሮች (A - E) መኖራቸውን እና በእነዚህ ማርከሮች መካከል ያለውን የጊዜ ዋጋ በፒ.ኤስ.
View
የ View ንዑስ ሜኑ የሁኔታ ንጥሎችን በግራፊክ አተረጓጎም እና በምልክት ንዑስ መስኮት ውስጥ ያሉትን እሴቶች ለመቆጣጠር የተለያዩ ባህሪያትን ለመቆጣጠር ይጠቅማል። ከዚህ ምናሌ ውስጥ የሲግናል መስኮቱን ወደ ጥቁር እና ነጭ ወይም እንዲሁም ቀለም መቀየር ይችላሉ. የ View ንዑስ ሜኑ እንዲሁ ሰዓቱን ለመለወጥ ያስችሎታል ልኬት ከሴኮንዶች (ሰከንድ) ወደ ficoseconds (fs)። ተጠቃሚው ይህንን አማራጭ ማግኘት ይችላል። View → መለኪያ ወደ ጊዜ ልኬት → fs.
እገዛ
የእገዛ ንዑስ ምናሌው የመስመር ላይ እገዛን ለማንቃት እና የፕሮግራም ሥሪት መረጃን ለማሳየት አማራጮችን ይዟል።
ማጠቃለያ
ይህ ሰነድ ተጠቃሚው ዲዛይኑን በተሳካ ሁኔታ እንዲመስል እና ተግባራቱን በማረጋገጥ አስፈላጊውን የሙከራ ቤንች በማረም እና Icarus Verilog ከ GTKwave ጋር በመጠቀም የሞገድ ፎርሞችን ለማሳየት እና ውጤቱን እንዲከታተል ለመርዳት የተፈጠረ ነው።
የክለሳ ታሪክ
ክለሳ | ቀን | መግለጫ |
1.00 | ግንቦት 20 ቀን 2024 | የመጀመሪያ ልቀት |
R19US0011EU0100 Rev.1.0
ግንቦት 20 ቀን 2024
© 2024 ሬኔሳ ኤሌክትሮኒክስ
ሰነዶች / መርጃዎች
![]() |
RENESAS ForgeFPGA ሶፍትዌር ማስመሰል [pdf] የተጠቃሚ መመሪያ REN_r19us0011eu0100፣ ForgeFPGA ሶፍትዌር ማስመሰል፣ ForgeFPGA ሶፍትዌር፣ ForgeFPGA፣ ForgeFPGA ማስመሰል፣ የሶፍትዌር ማስመሰል፣ ማስመሰል፣ ሶፍትዌር |