RENESAS ForgeFPGA மென்பொருள் உருவகப்படுத்துதல்
முக்கியமான தகவல்
உருவகப்படுத்துதல் என்பது RTL குறியீடு நோக்கம் கொண்ட விதத்தில் செயல்படுகிறதா என்பதைச் சரிபார்க்க வெவ்வேறு நேரங்களில் வெவ்வேறு உள்ளீட்டு தூண்டுதலை வடிவமைப்பில் பயன்படுத்துவதற்கான ஒரு நுட்பமாகும். வடிவமைப்பின் உறுதியை சரிபார்க்க இது பயன்படுகிறது. உருவகப்படுத்துதல் பயனரை அனுமதிக்கிறது view வடிவமைப்பில் வடிவமைப்பு விளக்கம் எவ்வாறு உள்ளது என்பதைப் புரிந்துகொள்ள தொடர்புடைய சமிக்ஞைகளின் நேர வரைபடம் file நடந்து கொள்கிறது.
Testbenches என்பது உருவகப்படுத்துதலுக்குப் பயன்படுத்தப்படும் குறியீட்டுத் துண்டுகள். ஒரு எளிய டெஸ்ட்பெஞ்ச் யூனிட் அண்டர் டெஸ்ட் (UUT) ஐ இன்ஸ்டான்டியேட் செய்து உள்ளீட்டை இயக்கும். Go Configure மென்பொருள் Icarus Verilog (iVerilog) மற்றும் GTKWave ஐ டெஸ்ட்பெஞ்சில் வழங்கப்பட்ட தூண்டுதலுடன் உருவகப்படுத்துதல் அலைவடிவங்களைக் கண்காணிக்கப் பயன்படுத்துகிறது.
உங்கள் கணினியில் Icarus ஐ நிறுவும் போது எடுக்க வேண்டிய படிகள் மற்றும் வெற்றிகரமான உருவகப்படுத்துதலை எவ்வாறு இயக்குவது என்பதை இந்த ஆவணம் விவரிக்கிறது.
Icarus Verilog ஐ நிறுவுகிறது
a. Icarus Verilog (IVerilog) இன் சமீபத்திய பதிப்பை நிறுவவும் https://bleyer.org/icarus/
b. PATH இல் IVerilog ஐச் சேர்த்து, GTKWave ஐ நிறுவ அனுமதிக்கவும் (படம் 1 ஐப் பார்க்கவும்)
c. Go Configure Software ஐத் திறந்து, Forge Workshopஐத் திறக்க, SLG47910(Rev BB) பகுதியைத் தேர்ந்தெடுக்கவும் (படம் 2ஐப் பார்க்கவும்).
d. மேலே உள்ள கருவிப்பட்டியின் நடுவில் உள்ள FPGA எடிட்டரைக் கிளிக் செய்யவும் அல்லது பயனர் சாளரத்தின் நடுவில் உள்ள FPGA கோர் கட்டமைப்பிலும் இருமுறை கிளிக் செய்யலாம்.
e. Forge Workshop எனப்படும் புதிய சாளரம் திறக்கிறது. மேலே உள்ள மெனு கருவிப்பட்டியில், விருப்பங்கள் → அமைப்புகள் என்பதைக் கிளிக் செய்யவும். அமைப்புகள் உரையாடல் பெட்டியில், பயனர் அமைப்புகள் தாவலின் கீழ் கருவிகளுக்குச் செல்லவும். Icarus Verilog மற்றும் GTKWave இரண்டிற்கும் பயன்படுத்து “கணினி சூழல் பெட்டியை” தேர்வுநீக்கவும். உங்கள் கணினியில் சேமிக்கப்பட்டுள்ள Iverilog மற்றும் GTKWaveக்கான பாதையை கொடுக்கப்பட்ட இடத்தில் சேர்க்கவும் (படம் 4 ஐப் பார்க்கவும்).
டெஸ்ட்பெஞ்சை உருவகப்படுத்த நீங்கள் அனைவரும் தயாராகிவிட்டீர்கள், மேலே உள்ள படிகள் Go Configure மென்பொருளில் டெஸ்ட்பெஞ்சை உருவகப்படுத்தும்போது GTKWave தானாகவே தொடங்குவதை உறுதிசெய்கிறது.
டெஸ்ட்பெஞ்ச்
எந்தவொரு அமைப்பையும் வெற்றிகரமாக செயல்படுத்துவதில் மிக முக்கியமான படி வடிவமைப்பு மற்றும் அதன் செயல்பாட்டை சரிபார்க்க வேண்டும். வன்பொருளைச் செயல்படுத்திய பிறகு சிக்கலான அமைப்பைச் சரிபார்ப்பது புத்திசாலித்தனமான தேர்வு அல்ல. பணம், நேரம் மற்றும் வளங்களின் அடிப்படையில் இது பயனற்றது. எனவே, FPGA விஷயத்தில், வெரிலாக் மூலக் குறியீட்டைச் சோதிக்க ஒரு சோதனைப் பெஞ்ச் பயன்படுத்தப்படுகிறது.
எங்களிடம் 11 பிட்கள் உள்ளீடு உள்ளது என்று வைத்துக்கொள்வோம், மேலும் சாத்தியமான அனைத்து உள்ளீட்டு சேர்க்கை மதிப்புகளுக்கும் சாதனத்தை சோதிக்க விரும்புகிறோம் (211). இது மிகப்பெரிய எண்ணிக்கையிலான சேர்க்கைகள் என்பதால், அதை கைமுறையாக சோதிக்க இயலாது. இதுபோன்ற சந்தர்ப்பங்களில், சாத்தியமான அனைத்து மதிப்புகளுக்கும் வடிவமைப்பை தானாகச் சோதிக்க முடியும் என்பதால், சோதனைப் பெட்டிகள் மிகவும் பயனுள்ளதாக இருக்கும், எனவே, சோதனை வடிவமைப்பின் நம்பகத்தன்மையை உறுதிப்படுத்தவும். எந்தவொரு இயற்பியல் வன்பொருள் சாதனமும் தேவையில்லாமல் வடிவமைப்புகளை உருவகப்படுத்தவும் பகுப்பாய்வு செய்யவும் Verilog Testbenches பயன்படுத்தப்படுகிறது.
சோதனையின் கீழ் உள்ள வடிவமைப்பு, DUT என சுருக்கமாக, நாம் சோதிக்க விரும்பும் செயல்பாட்டின் ஒருங்கிணைக்கக்கூடிய தொகுதியாகும். வேறு வார்த்தைகளில் கூறுவதானால், நாங்கள் சோதிக்க விரும்பும் சுற்று வடிவமைப்பு இது. வெரிலாக் - கேட்-லெவல், டேட்டாஃப்ளோ, அல்லது பிஹேவியர் ஆகிய மூன்று மாடலிங் ஸ்டைல்களில் ஒன்றைப் பயன்படுத்தி எங்கள் DUT ஐ விவரிக்கலாம்.
ஒரு சோதனை பெஞ்ச் ஒருங்கிணைக்க முடியாதது, எனவே இது உருவகப்படுத்துதல் நோக்கங்களுக்காக மட்டுமே பயன்படுத்தப்படுகிறது. இது பயனர் முழு அளவிலான Verilog கட்டுமானங்களைப் பயன்படுத்த அனுமதிக்கிறது, எ.கா., "for", "$display" மற்றும் "$monitor" போன்ற முக்கிய வார்த்தைகள். ஒரு எளிய டெஸ்ட்பெஞ்ச் யூனிட் அண்டர் டெஸ்ட் (யுயுடி) அல்லது டிவைஸ் அண்டர் டெஸ்ட் (டியூடி) மற்றும் டிரைவ் உள்ளீடுகளை உடனுக்குடன் வழங்கும்.
ஒரு டெஸ்ட் பெஞ்சைப் புரிந்துகொள்வது
டெஸ்ட்பெஞ்சில் கால அளவு வரையறை
உருவகப்படுத்தும்போது, நேரம் எவ்வாறு வரையறுக்கப்பட்டுள்ளது என்பதை மென்பொருள் அறிந்து கொள்ள வேண்டும். தாமத அலகு `டைம்ஸ்கேல் கட்டளையைப் பயன்படுத்தி குறிப்பிடப்படுகிறது, இது நேர அலகு மற்றும் அதைத் தொடர்ந்து வரும் தொகுதிகளுக்கான துல்லியத்தைக் குறிப்பிடுகிறது. நேரத்தின் அடிப்படையில் #1 என்றால் என்ன என்பதைத் தீர்மானிக்க `நேர அளவுகோல் உதவுகிறது. # நேர அளவில் குறிப்பிடப்பட்ட நேர அலகுக்கு ஏற்ப கணினியில் அறிமுகப்படுத்தப்படும் தாமதத்தை வரையறுக்கப் பயன்படுகிறது. எனவே, #1 என்பது நேர_அலகு ns இல் இருந்தால் 1 ns தாமதமாகும்.
தொடரியல்:
கால அளவு / /
time_unit என்பது #1 இன் தாமதம் குறிக்கும் நேரத்தின் அளவு. time_precision அடிப்படை என்பது நேர அலகுகளுடன் ஒப்பிடும்போது எத்தனை தசமப் புள்ளிகளைப் பயன்படுத்த வேண்டும் என்பதைக் குறிக்கிறது. (படம் 23 இல் வரி 5 ஐப் பார்க்கவும்)
ஒரே வடிவமைப்பில் வெவ்வேறு நேர அலகுகளைப் பயன்படுத்த நாம் கால அளவைக் கட்டமைப்பைப் பயன்படுத்தலாம். தாமத விவரக்குறிப்புகள் ஒருங்கிணைக்க முடியாது மற்றும் வன்பொருள் தர்க்கத்திற்கு மாற்ற முடியாது என்பதை பயனர் நினைவில் கொள்ள வேண்டும். தாமத செயல்பாடுகள் முற்றிலும் உருவகப்படுத்துதல் நோக்கங்களுக்காக உள்ளன. $நேரம் மற்றும் $நிகழ்நேரம் கணினி செயல்பாடுகள் தற்போதைய நேரத்தை வழங்கும் மற்றும் இயல்புநிலை அறிக்கையிடல் வடிவமைப்பை மற்றொரு கணினி பணி $timeformat மூலம் மாற்றலாம்.
Exampலெ:
கால அளவு 10US/100ns
கால அளவு 1ns/1ps
#10 மீட்டமை = 1; // சமிக்ஞையை 10 ns தாமதப்படுத்துகிறது
#0.49 $display( “T = %0t at time #0.49”, $realtime) ;
குறிப்பிடப்பட்ட தாமதம் #0.49 ஆகும், இது அரை யூனிட் நேரத்தை விடக் குறைவு. இருப்பினும், நேரத் துல்லியம் 1ps ஆகக் குறிப்பிடப்பட்டுள்ளது, எனவே சிமுலேட்டரால் 1ns ஐ விட சிறியதாக செல்ல முடியாது, இது கொடுக்கப்பட்ட தாமத அறிக்கையைச் சுற்றி 0ns ஐ வழங்குகிறது. எனவே, இந்த அறிக்கை எந்த தாமதத்தையும் வழங்கத் தவறிவிட்டது.
உருவகப்படுத்துதல் பதிவு:
T = 1 நேரத்தில் #0.49
தொகுதி பிரகடனம்
எந்த டெஸ்ட்பெஞ்சிலும் தொகுதி அறிவிப்பு பிரதான வெரிலாக் குறியீட்டைப் போல் இல்லை. ஒரு டெஸ்ட்பெஞ்சில், தொகுதி எந்த டெர்மினல் போர்ட்களும் இல்லாமல் அறிவிக்கப்படுகிறது. (படம் 25 இல் வரி 5 ஐப் பார்க்கவும்)
தொடரியல்:
தொகுதி ;
முதன்மை வடிவமைப்பில் முன்னர் வரையறுக்கப்பட்ட உள்ளீடு மற்றும் வெளியீட்டு சமிக்ஞைகளை வரையறுப்பதன் மூலம் தொகுதி அறிவிப்பு பின்பற்றப்படுகிறது. file.
உருவகப்படுத்துதலின் போது சிக்னல்களை ஓட்டுவதற்கும் கண்காணிப்பதற்கும் இரண்டு சமிக்ஞை வகைகளைப் பயன்படுத்துகிறோம். ரெக் டேட்டாடைப் புதிய மதிப்பு ஒதுக்கப்படும் வரை மதிப்பை வைத்திருக்கும். இந்த தரவு வகைக்கு எப்போதும் அல்லது ஆரம்ப தொகுதியில் மட்டுமே மதிப்பை ஒதுக்க முடியும்.
வயர் தரவு வகை என்பது ஒரு உடல் இணைப்பு போன்றது. இது ஒரு போர்ட்டால் இயக்கப்படும் மதிப்பை வைத்திருக்கும், அறிக்கையை ஒதுக்கும் அல்லது ரெஜி. இந்த தரவு வகையை ஆரம்ப அல்லது எப்போதும் தடுப்பில் பயன்படுத்த முடியாது. எந்த அளவுரு மற்றும் முழு எண் அறிவிப்பும் இந்த பிரிவில் செய்யப்படுகிறது.
Exampலெ:
Reg a,b; // HDL குறியீட்டில் உள்ள உள்ளீடு டெஸ்ட்பெஞ்சில் reg என வரையறுக்கப்படுகிறது
கம்பி ஒய்; // HDL இல் வெளியீட்டு சமிக்ஞையானது டெஸ்ட்பெஞ்சில் கம்பி என வரையறுக்கப்படுகிறது
DUT உடனடி
எங்கள் DUT மாட்யூல் செயல்படுகிறதா என்பதைச் சரிபார்ப்பதே டெஸ்ட்பெஞ்சின் நோக்கம். எனவே, தொகுதியை சோதிக்க எங்கள் வடிவமைப்பு தொகுதியை உடனடியாக மாற்ற வேண்டும்.
தொடரியல்:
(. (சிக்னல்1), . சிக்னல்1>(சிக்னல்2));
Exampலெ:
ALU d0 (.a(a), // ALU இல் உள்ள “a” சமிக்ஞை ALU_tb தொகுதியில் உள்ள “a” உடன் இணைக்கப்பட வேண்டும்
.b(b), // ALU இல் "b" சமிக்ஞை ALU_tb தொகுதியில் "b" உடன் இணைக்கப்பட வேண்டும்
.c(c)) ;// ALU இல் "c" சமிக்ஞை ALU_tb தொகுதியில் "c" உடன் இணைக்கப்பட வேண்டும்
சோதனை தொகுதிக்கு DUT தொகுதி ALU ஐ நிறுவியுள்ளோம். நிகழ்வின் பெயர் (d0) என்பது பயனரின் விருப்பமாகும். "" காலத்துடன் கூடிய சமிக்ஞைகள் அவற்றின் முன் ALU தொகுதிக்குள் உள்ள சிக்னல்களுக்கான பெயர்கள் உள்ளன, அதே சமயம் சோதனை பெஞ்சில் அவை இணைக்கும் கம்பி அல்லது ரெக் அடைப்புக்குறிக்குள் () சிக்னலுக்கு அடுத்ததாக இருக்கும். ஒவ்வொரு போர்ட் இணைப்பையும் தனித்தனி வரியில் குறியிட பரிந்துரைக்கப்படுகிறது, இதனால் எந்த தொகுப்பு பிழை செய்தியும் பிழை ஏற்பட்ட வரி எண்ணை சரியாக சுட்டிக்காட்டும். இந்த இணைப்புகள் பெயரால் செய்யப்பட்டதால், அவை தோன்றும் வரிசை பொருத்தமற்றது.
டெஸ்ட்பெஞ்ச் தொகுதி வெவ்வேறு சிக்னல் பெயர்களைக் கொண்டிருக்கும் மாட்யூல்களுக்கும் DUT இன்ஸ்டண்டியேஷனை உருவாக்கலாம். சிக்னல்களின் சரியான மேப்பிங் என்பது உடனடியான போது முக்கியமானது.
Example:
ALU d0 (.a(A), // ALU இல் உள்ள “a” சமிக்ஞை ALU_tb தொகுதியில் உள்ள “A” உடன் இணைக்கப்பட வேண்டும்
.clk(கடிகாரம்), // ALU இல் உள்ள “clk” சமிக்ஞை “கடிகாரம்” ALU_tb தொகுதியுடன் இணைக்கப்பட வேண்டும்
.அவுட்(OUT)) ; // ALU இல் "அவுட்" சிக்னல் ALU_tb தொகுதியில் "OUT" உடன் இணைக்கப்பட வேண்டும்
டெஸ்ட்பெஞ்சில் எப்போதும் & ஆரம்பத் தடை
வெரிலாக்கில் இரண்டு தொடர் தொகுதிகள் உள்ளன, ஆரம்ப மற்றும் எப்போதும். இந்த தொகுதிகளில்தான் நாம் தூண்டுதலைப் பயன்படுத்துகிறோம்.
ஆரம்ப தொகுதி
ஆரம்பத் தொகுதி ஒருமுறை மட்டுமே செயல்படுத்தப்பட்டு, பிளாக்கின் கடைசி வரியை இயக்கும் போது நிறுத்தப்படும். தூண்டுதல் ஆரம்ப தொகுதியில் எழுதப்பட்டுள்ளது. (படம் 54 இல் வரி 72-5 ஐப் பார்க்கவும்)
தொடரியல்:
..
ஆரம்ப தொடக்கம்
$டம்ப்file();
$dumpvars();
..(தூண்டுதலை உள்ளிடவும்)
முடிவு
தொடக்கத் தொகுதியானது உருவகப்படுத்துதலின் தொடக்கத்தில் t = 0 நேரத்தில் தொடங்குகிறது. தொடக்கத்திற்கும் முடிவுக்கும் இடையே உள்ள முதல் வரியில் தொடங்கி, தாமதம் அடையும் வரை ஒவ்வொரு வரியும் மேலிருந்து கீழாக இயங்கும். தாமதம் அடையும் போது, இந்த பிளாக்கின் செயல்படுத்தல் தாமத நேரம் (10-டைம் யூனிட்கள்) கடந்து செல்லும் வரை காத்திருந்து, பின்னர் மீண்டும் செயல்படுத்தப்படும்.
பயனர் அனைத்து சேர்க்கைகளையும் கைமுறையாக உள்ளிடுவதற்குப் பதிலாக இந்த ஆரம்பத் தொகுதிக்குள் சுழல்களைப் பயன்படுத்தி தூண்டுதல்களை வரையறுக்கலாம் (எனக்கு, அதே நேரத்தில், என்றால்-இல்லை).
Example:
ஆரம்ப ஆரம்பம்
A = 0; b = 0; // செயல்படுத்தலைத் தொடங்குங்கள்
#10 a = 0; b = 1; // செயல்படுத்தல் t = 10-யூனிட் நேரத்தில் உள்ளது
#10 a = 1; b = 0; // செயல்படுத்தல் t = 20-யூனிட் நேரத்தில் உள்ளது
முடிவு
திணிப்பு Files
மனதில் கொள்ள வேண்டிய மற்றொரு விஷயம் $ இன் அறிவிப்புதிணிப்புfiles மற்றும் $dumpvars ஆரம்ப தொகுதியின் உள்ளே (படம் 55 இல் வரி 56- 5 ஐப் பார்க்கவும்). $திணிப்புfile வலைகள் மற்றும் பதிவேடுகளின் மதிப்புகளில் ஏற்படும் மாற்றங்களை a இல் டம்ப் செய்ய பயன்படுகிறது file அதன் வாதம் என்று பெயரிடப்பட்டது.
உதாரணமாகampலெ:
$திணிப்புfile(“alu_tb.vcd”);
a இல் மாற்றங்களை டம்ப் செய்யும் file alu_tb.vcd என்று பெயரிடப்பட்டது. மாற்றங்கள் a இல் பதிவு செய்யப்பட்டுள்ளன file விசிடி எனப்படும் file இது மதிப்பு மாற்ற திணிப்பைக் குறிக்கிறது. ஒரு VCD (மதிப்பு மாற்ற டம்ப்) மதிப்பு மாற்றங்கள் பற்றிய அனைத்து தகவல்களையும் சேமிக்கிறது. எங்களிடம் ஒன்றுக்கு மேல் $dump இருக்க முடியாதுfile வெரிலாக் உருவகப்படுத்துதலில் அறிக்கைகள்.
$dumpvars எந்த மாறிகள் டம்ப் செய்யப்பட வேண்டும் என்பதைக் குறிப்பிடப் பயன்படுகிறது (இல் file $dump ஆல் குறிப்பிடப்பட்டுள்ளதுfile) எந்த வாதமும் இல்லாமல் அதைப் பயன்படுத்துவதற்கான எளிய வழி. $dumpvars இன் பொதுவான தொடரியல்
$dumpvars ( <, >);
எந்த தொகுதிகள் மற்றும் தொகுதிகளில் உள்ள மாறிகள் டம்ப் செய்யப்படும் என்பதை நாம் அடிப்படையில் குறிப்பிடலாம். இதைப் பயன்படுத்துவதற்கான எளிய வழி, லெவலை 0 ஆகவும், மாட்யூலின் பெயரை டாப் மாட்யூலாகவும் அமைப்பது (பொதுவாக மேல் டெஸ்ட்பெஞ்ச் தொகுதி).
$dumpvars(0, alu_tb);
நிலை 0 என அமைக்கப்பட்டு, தொகுதியின் பெயர் மட்டும் குறிப்பிடப்பட்டால், அது அந்தத் தொகுதியின் அனைத்து மாறிகளையும் இந்த மேல் தொகுதியால் நிறுவப்பட்ட அனைத்து கீழ்-நிலை தொகுதிகளில் உள்ள அனைத்து மாறிகளையும் டம்ப் செய்யும். இந்த மேல் தொகுதி மூலம் எந்த தொகுதியும் உடனடியாக உருவாக்கப்படவில்லை என்றால், அதன் மாறி மறைக்கப்படாது. இன்னும் ஒரு விஷயம், $ அறிவிப்புதிணிப்புfile $dumpvars அல்லது டம்பைக் குறிப்பிடும் வேறு ஏதேனும் கணினிப் பணிகளுக்கு முன் வர வேண்டும். இவை கொட்டுகின்றன fileதூண்டுதல் உள்ளீடுகளுக்கு முன் கள் அறிவிக்கப்பட வேண்டும், இந்த டம்ப்பில் எந்த மதிப்பும் சேமிக்கப்படாது files.
எப்போதும் தடு
ஆரம்ப அறிக்கைகளுக்கு மாறாக, எப்பொழுதும் ஒரு பிளாக் மீண்டும் மீண்டும் இயங்குகிறது, இருப்பினும் செயல்படுத்தல் t = 0 நேரத்தில் தொடங்குகிறது.ample, Flip-flops போன்ற தொடர் சுற்றுகளின் செயல்பாட்டிற்கு கடிகார சமிக்ஞை அவசியம். இது தொடர்ந்து வழங்கப்பட வேண்டும். எனவே, கடிகாரத்தின் செயல்பாட்டிற்கான குறியீட்டை ஒரு சோதனைப் பெட்டியில் இவ்வாறு எழுதலாம் (படம் 52 இல் வரி 5 ஐப் பார்க்கவும்):
எப்போதும்
#10 clk = ~clk;
இறுதி தொகுதி
மேலே உள்ள அறிக்கை t = 10 இலிருந்து 0 nsக்குப் பிறகு செயல்படுத்தப்படும். clk இன் மதிப்பு முந்தைய மதிப்பிலிருந்து 10 nsக்குப் பிறகு தலைகீழாக மாறும். இவ்வாறு, 20 ns துடிப்பு அகலத்தின் கடிகார சமிக்ஞையை உருவாக்குகிறது. எனவே, இந்த அறிக்கை அதிர்வெண் 50 மெகா ஹெர்ட்ஸ் சமிக்ஞையை உருவாக்குகிறது. சிக்னலின் துவக்கம் எப்போதும் தடுப்புக்கு முன் செய்யப்படுகிறது என்பதை கவனத்தில் கொள்ள வேண்டும். நாம் துவக்கப் பகுதியைச் செய்யவில்லை என்றால், clk சமிக்ஞை t – 0 இலிருந்து x ஆகவும், 10 nsக்குப் பிறகு, அது மற்றொரு x ஆகவும் மாற்றப்படும்.
சுய சரிபார்ப்பு டெஸ்ட் பெஞ்ச்
ஒரு சுய சரிபார்ப்பு சோதனை பெஞ்சில் தற்போதைய நிலையை சரிபார்க்க ஒரு அறிக்கை உள்ளது.
- $காட்சி சிஸ்டம் டாஸ்க், சிமுலேஷனின் ஓட்டத்தைக் கண்காணிக்க பிழைத்திருத்த செய்திகளைக் காட்ட முக்கியமாகப் பயன்படுத்தப்படுகிறது
ஆரம்ப தொடக்கம்
A = 0 ; b = 0 ; c = 0; #10; // உள்ளீட்டைப் பயன்படுத்து, காத்திருக்கவும்
என்றால் (y! == 1) தொடங்கும்
$display( "000 தோல்வி") ; // சரிபார்க்கவும்
c = 1; #10 ; //உள்ளீட்டைப் பயன்படுத்து, காத்திருக்கவும்
முடிவு
இல்லையெனில் (y! == 0) தொடங்கினால்
$display(“001 தோல்வி”) // சரிபார்க்கவும்
b = 1; c = 0; #10 ; முடிவு
இல்லையெனில் (y!==0)
$டிஸ்ப்ளே (“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. வெரிலாக் அட்டவணை வடிவங்கள்
வாதம் | விளக்கம் |
%h, %H | ஹெக்ஸாடெசிமல் வடிவத்தில் காட்சி |
%d, %D | தசம வடிவத்தில் காட்சி |
%b, %B | பைனரி வடிவத்தில் காட்சி |
%m, %M | படிநிலைப் பெயரைக் காட்டு |
%s, %S | சரமாக காட்சி |
%t, %T | நேர வடிவத்தில் காட்சி |
%f, %F | தசம வடிவத்தில் 'உண்மையை' காட்டவும் |
%e, %E | அதிவேக வடிவத்தில் 'உண்மையை' காட்டவும் |
$காட்சி C இல் உள்ள printf போல அந்த நேரத்தில் இருக்கும் தரவு அல்லது மாறியை முக்கியமாக அச்சிடுகிறது. நாம் $ குறிப்பிட வேண்டும்காட்சி நாம் செய்ய வேண்டிய எந்த உரைக்கும் view உருவகப்படுத்துதல் பதிவில்.
- $நேரம்
$நேரம் உருவகப்படுத்துதலின் தற்போதைய நேரத்தை வழங்கும் ஒரு கணினி பணியாகும்.
- $கண்காணிக்க
$கண்காணிக்க இது எழுதப்பட்ட தரவு அல்லது மாறியை கண்காணிக்கும் மற்றும் மாறி மாறும் போதெல்லாம், அது அச்சிடப்படும்
மாற்றப்பட்ட மதிப்பு. ஒவ்வொரு முறையும் அதன் எந்த வாதங்கள் வந்தாலும் $display ஐ அழைப்பது போன்ற விளைவை இது அடைகிறது
புதுப்பிக்கப்பட்டது. $கண்காணிக்க கண்காணிக்கும் மற்றும் முக்கிய நூலின் பின்னணியில் இயங்கும் பணி போன்றது
அதன் வாத மாறிகளின் மதிப்பு மாற்றங்களைக் காட்டுகிறது. $கண்காணிக்க $ போன்ற அதே தொடரியல் உள்ளதுகாட்சி.
$கண்காணிக்க(“நேரம் = %t, A = %b, B = %b, C = % b”, $நேரம், A,B,C);
படம் 7 இலிருந்து, டெஸ்ட்பெஞ்சை சுயமதிப்பீடு செய்ய புதிய கோடுகள் சேர்க்கப்பட்டுள்ளதை நீங்கள் அவதானிக்கலாம். $ன் இடம்காட்சி மற்றும் $கண்காணிக்க சோதனை பெஞ்சின் வெவ்வேறு பிரிவுகளில் உள்ள அறிக்கைகள் வெவ்வேறு முடிவுகளைத் தரும் (படம் 8 ஐப் பார்க்கவும்). $நேரம் இந்த அறிக்கைகளில் குறிப்பிடப்பட்டுள்ள மதிப்பு அச்சிடப்படும் நேரத்தை அச்சிடுகிறது. அதே நேரத்தில் அலகு 170000 என்று கூறினால், $ காரணமாக A மற்றும் Bக்கான மதிப்பில் எப்படி வேறுபாடு உள்ளது என்பதைப் பார்க்கலாம்.காட்சி மற்றும் $கண்காணிக்க அறிக்கைகள்.
GTKWave மென்பொருள்
GTKWave என்பது முழுமையாக இடம்பெற்றுள்ள GTK+ அலை viewLXT, LXT32, VZT, FST மற்றும் GHW ஆகியவற்றைப் படிக்கும் Unix, Win2 மற்றும் Mac OSX ஆகியவற்றுக்கான er fileகள் அத்துடன் நிலையான VCD/EVCD fileகள் மற்றும் அவர்களின் அனுமதிக்கிறது viewing. அதன் அதிகாரி webதளத்தில் உள்ளது http://gtkwave.sourceforge.net/ . GTKWave பரிந்துரைக்கப்படுகிறது viewஇக்காரஸ் வெரிலாக் உருவகப்படுத்துதல் கருவி மூலம்.
வடிவமைப்பின் செயல்பாட்டைச் சோதிக்க பயனர் வெற்றிகரமாக ஒரு சோதனைப் பெட்டியை உருவாக்கியவுடன், பயனர் இப்போது GTKWave மென்பொருளைப் பயன்படுத்தலாம் view அலைவடிவங்கள்.
GTKWave மென்பொருளைத் தொடங்க view அலைவடிவங்களில், கருவிப்பட்டியின் மேற்புறத்தில் உள்ள சிமுலேட் டெஸ்ட்பெஞ்ச் பொத்தானை அல்லது கருவிகள்→ சிமுலேஷன்→ சிமுலேட் டெஸ்ட்பெஞ்ச் மெனுவிலிருந்து பயனர் கிளிக் செய்ய வேண்டும். தொடரியல் பிழைகள் இல்லை என்றால், வடிவமைப்பைப் பொறுத்து, GTKWave தானாகவே தொடங்கப்பட வேண்டும் அல்லது சோதனைப் பெட்டியில் உள்ள தூண்டுதல்களின் முடிவுகள் சாளரத்தின் லாகர் பிரிவில் காட்டப்படும்.
GTKWave மென்பொருள் .vcd வடிவமைப்பு டம்பைத் திறக்கிறதுfile தானாகவே. GTKWave சாளரம் திறக்கும் போது அலைவடிவத்தைக் காட்டாது. இது பயனருக்குத் தேவையான சிக்னல்களைத் தேர்ந்தெடுக்கும் வாய்ப்பை வழங்குகிறது view மற்றும் கவனிக்கவும். சிக்னலைத் தேர்வுசெய்ய, பயனர் காண்பிக்க வேண்டும், SST தாவலின் கீழ் சாளரத்தின் இடது பக்கத்தில் உள்ள தொகுதி/நிகழ்வின் பெயரை பயனர் கிளிக் செய்ய வேண்டும். ஒவ்வொரு நிகழ்வின் + ஐக் கிளிக் செய்வதன் மூலம், கீழே உள்ள பிரிவில் அந்த நிகழ்வோடு தொடர்புடைய சிக்னல்களைக் காணலாம். பின்னர் நீங்கள் விரும்பிய சிக்னலை இழுத்து விடலாம் அல்லது சிக்னல்கள் சாளரத்தில் காண்பிக்க அவற்றை இருமுறை கிளிக் செய்யவும். நீங்கள் அனைத்தையும் (CTRL + A) தேர்ந்தெடுத்து அவற்றை சிக்னல்கள் சாளரத்தில் செருகலாம் (படம் 9 ஐப் பார்க்கவும்).
சிக்னல்கள் இப்போது சிக்னல் சாளரத்தில் சேர்க்கப்பட்டுள்ளன, ஆனால் அது இன்னும் உருவகப்படுத்தப்படவில்லை. சமிக்ஞை சாளரத்தில் விரும்பிய சமிக்ஞைகளைச் சேர்த்த பிறகு, கிளிக் செய்யவும் சாளரத்தின் தற்போதைய அகலத்திற்கு சிக்னல்களை பொருத்தி, மறுஏற்றத்திலிருந்து சிக்னல்களை மீண்டும் ஏற்றவும்
கருவிப்பட்டியில் சின்னம் உள்ளது. சிக்னல்களை அவற்றின் மதிப்புகளுடன் இப்போது பார்க்கலாம்.
சிக்னல் மதிப்புகள்
முன்னிருப்பாக, சிக்னல்களின் மதிப்புகள் ஹெக்ஸாடெசிமல் வடிவத்தில் இருக்கும் மற்றும் அனைத்து அலைகளும் பச்சை நிறத்தில் இருக்கும் (சரியாக இயங்கினால்).
சிக்னலில் வலது கிளிக் செய்து தரவு வடிவம் அல்லது வண்ண வடிவமைப்பைத் தேர்ந்தெடுப்பதன் மூலம் பயனர் இந்த சிக்னலின் பண்புகளை மாற்றலாம். சிக்னல்களின் குழுவிற்கு இடையே பிரிவுகளை உருவாக்க பயனர் வெற்று சிக்னலையும் செருகலாம். நீங்கள் விரும்பிய ஆப்டிகல் முடிவைப் பெற்றால், செல்வதன் மூலம் உங்கள் உள்ளமைவுகளைச் சேமிக்கலாம் File → எழுது சேமி File.
GTKWave கருவிப்பட்டி
கருவிப்பட்டி (படம் 10 ஐப் பார்க்கவும்) சிக்னலுக்கான அடிப்படை செயல்பாடுகளைச் செய்ய பயனரை அனுமதிக்கிறது. கருவிப்பட்டியில் இடமிருந்து வலமாக ஒவ்வொரு விருப்பத்தையும் விவாதிப்போம்.
- மெனு விருப்பங்கள்: இந்த விருப்பத்தின் கீழ் நாம் முடியும் view மென்பொருளின் அனைத்து பல்வேறு அம்சங்களையும் மென்பொருளுடன் விளையாட பயன்படுத்தலாம். இந்த மெனு விருப்பத்தின் கீழ் உள்ள விவரங்கள் இந்த பயனர் வழிகாட்டியின் பிரிவு 8 இன் கீழ் உள்ளன.
- சுவடுகளை வெட்டுங்கள்: சிக்னல் சாளரத்தில் இருந்து தேர்ந்தெடுக்கப்பட்ட சிக்னலை நீக்க/வெட்ட இது பயன்படுகிறது
- தடயங்களை நகலெடுக்கவும்: சிக்னல் சாளரத்தில் இருந்து தேர்ந்தெடுக்கப்பட்ட சிக்னலை நகலெடுக்க இது பயன்படுகிறது
- தடயங்களை ஒட்டவும்: நகலெடுக்கப்பட்ட/வெட்டப்பட்ட ட்ரேஸை சிக்னல் சாளரத்தில் வேறு இடத்தில் ஒட்டலாம்
- ஜூம் ஃபிட்: இது பயனர் காண்பிக்க தேர்ந்தெடுக்கும் சாளரத்தின் அளவிற்கு ஏற்ப சிக்னல்களை பொருத்த பயன்படுகிறது
- பெரிதாக்கவும்: இது சமிக்ஞை சாளரத்தில் பெரிதாக்கப் பயன்படுகிறது
- பெரிதாக்கவும்: இது சமிக்ஞை சாளரத்தை பெரிதாக்க பயன்படுகிறது
- பெரிதாக்கு செயல்தவிர்: இது சிக்னல் சாளரத்தில் ஜூம் இன்/அவுட் செய்வதை செயல்தவிர்க்க பயன்படுகிறது
- தொடங்குவதற்கு பெரிதாக்கவும்: இது சிக்னல் சாளரத்தை பெரிதாக்கும், சிக்னல்களின் தொடக்க நேரத்தைக் காண்பிக்கும்.
- முடிவுக்கு பெரிதாக்கவும்: இது சிக்னல்களின் இறுதி நேரத்தைக் காட்டும் சிக்னல் சாளரத்தை பெரிதாக்கும்
- முந்தைய விளிம்பைக் கண்டறியவும்: இது முந்தைய விளிம்பைக் குறிக்கும் மார்க்கரை இடது பக்கமாக மாற்றுகிறது
- அடுத்த விளிம்பைக் கண்டறியவும்: இது அடுத்த விளிம்பைக் குறிக்கும் மார்க்கரை வலதுபுறமாக மாற்றுகிறது
- கீழ்/மேல் பிணைப்பை உருட்டவும்: இதைப் பயன்படுத்தி பயனர் காட்ட விரும்பும் காலக்கெடுவை அமைக்கலாம். உதாரணமாகample, நாம் காலக்கெடுவை 0 நொடி முதல் 500 ns வரை அமைக்கலாம், அது அந்த காலத்தின் கீழ் மட்டுமே சிக்னல்களை காண்பிக்கும்.
- ஏற்றவும்: காட்டப்படும் சிக்னலில் மாற்றம் ஏற்படும் போதெல்லாம் மறுஏற்றம் அழுத்தப்படும். இது புதிய அளவுருக்களுக்கு ஏற்ப சிக்னலை மீண்டும் ஏற்றி காண்பிக்கும். உதாரணமாகample, சிக்னலின் கால கட்டத்தை மாற்றிய பின், சிக்னலை புதிய செட் டைம் ஃப்ரேமில் காட்ட சிக்னலை மீண்டும் ஏற்ற வேண்டும்.
மெனு விருப்பங்கள்
GTKWave மென்பொருளின் இடது மேல் மூலையில் இருந்து, பயனர் மூன்று செங்குத்து கோடுகளைக் கிளிக் செய்வதன் மூலம் மெனு விருப்பங்களை அணுகலாம் (படம் 11 ஐப் பார்க்கவும்). மெனு விருப்பங்களின் கீழ் பயனர் பின்வரும் விருப்பங்களைக் காணலாம்:
File
தி File துணைமெனுவில் அணுகல் தொடர்பான பல்வேறு உருப்படிகள் உள்ளன fileகள், இறக்குமதி-ஏற்றுமதி விசிடி fileகள், அச்சிடுதல் மற்றும் படித்தல்/எழுதுதல் fileகள் மற்றும் வெளியேறும்.
திருத்தவும்
அலை துணைச் சாளரத்தில் மதிப்புகளின் தரவுப் பிரதிநிதித்துவத்தை மாற்றுவது போன்ற பல்வேறு பயன்பாட்டு செயல்பாடுகளைச் செய்ய திருத்து துணைமெனு பயன்படுத்தப்படுகிறது. திருத்து துணைமெனுவின் கீழ் உள்ள விருப்பங்களைப் பயன்படுத்தி, பயனர் சிக்னல்களின் தரவு வடிவமைப்பை மாற்றலாம், அவற்றை மறுசீரமைக்கலாம், அவற்றை மாற்றலாம், அதை ஒழுங்கமைக்கலாம், அதை முன்னிலைப்படுத்தலாம், குழு சமிக்ஞைகள், சிக்னல்களில் கருத்து தெரிவிக்கலாம், சிக்னல்களின் நிறத்தை மாற்றலாம்.
தேடல்
நிகர பெயர்கள் மற்றும் மதிப்புகளில் தேடல்களைச் செய்ய தேடல் துணைமெனு பயன்படுத்தப்படுகிறது. விசிடியில் உள்ள சிக்னல்கள் மற்றும் நிகழ்வுகளின் வெவ்வேறு படிநிலை நிலைகளில் செயல்பாடுகளைச் செய்ய இது உதவுகிறது. file.
நேரம்
நேர துணைமெனுவில் வழிசெலுத்தல்கள் மற்றும் நிலை பேனல் பொத்தான்கள் செய்யும் செயல்பாடுகளின் சூப்பர்செட் உள்ளது.
இது எளிமையான, நேரம் தொடர்பான, பெரிதாக்குதல், குறிப்பிட்ட நேரப் புள்ளிக்கு நகர்த்துதல், ஒரு குறிப்பிட்ட திசையில் சிக்னலை மாற்றுதல் போன்ற செயல்பாடுகளை செயல்படுத்துகிறது.
குறிப்பான்
மார்க்கர் துணைமெனு, மார்க்கரில் பல்வேறு கையாளுதல்களைச் செய்வதற்கும், ஆஃப்ஸ்கிரீனில் ஸ்க்ரோலிங் செய்வதைக் கட்டுப்படுத்துவதற்கும் பயன்படுத்தப்படுகிறது.
இது சமிக்ஞை சாளரத்தில் பல குறிப்பான்களைச் சேர்க்கும் செயல்பாட்டை செயல்படுத்துகிறது. அதிகபட்சம் 26 பெயர்கள் குறிப்பான்கள் அனுமதிக்கப்படும் மற்றும் அனைத்திற்கும் நேரங்கள் வித்தியாசமாக இருக்க வேண்டும்.
a. சமிக்ஞை சாளரத்தில் குறிப்பான்களைச் சேர்க்க
நீங்கள் மார்க்கரை வைக்க விரும்பும் இடத்தில் இடது கிளிக் செய்து ALT + N ஐ அழுத்தவும். இது தேவையான புள்ளியில் பெயரிடப்பட்ட மார்க்கரை (A,B,C, முதலியன) வைக்கும். பயனர் 26 வெவ்வேறு நேர இடங்களுக்கு இதைத் தொடர்ந்து செய்யலாம்.
எல்லா இடங்களின் குறிப்பான்களிலும் நேர மதிப்பை ஒப்பிட, மெனு → குறிப்பான்கள் → மாற்ற குறிப்பான் தரவைக் காட்டு.
இது ஒவ்வொரு மார்க்கரிலும் நேர மதிப்புடன் ஒரு சாளரத்தைத் திறக்கும். 2 குறிப்பான்களுக்கு இடையே உள்ள நேர வேறுபாட்டைக் கணக்கிடுவதற்கு, ஒவ்வொரு குறிப்பானின் நேர மதிப்பையும் பயனர் கைமுறையாகக் குறிப்பிட்டு அவற்றைக் கழிக்கலாம்.
b. சிக்னல் சாளரத்தில் உள்ள மார்க்கரை அகற்ற
பயனர் மெனு → குறிப்பான்கள் → பெயரிடப்பட்ட குறிப்பான் சேகரிக்கு செல்லலாம். இது சமிக்ஞை சாளரத்தில் வைக்கப்பட்டுள்ள கடைசி பெயரிடப்பட்ட மார்க்கரை அகற்றும். மெனு → குறிப்பான்கள் → அனைத்து பெயரிடப்பட்ட குறிப்பான்களையும் சேகரியுங்கள் (படம் 12) என்பதற்குச் செல்வதன் மூலம் பயனர் பெயரிடப்பட்ட அனைத்து குறிப்பான்களையும் அகற்றலாம்.
படம் 13 இல், சமிக்ஞை வண்ணங்கள் எவ்வாறு மாற்றப்பட்டுள்ளன என்பதைக் காணலாம். சிக்னல் சாளரத்தில் ஒரு வெற்று சிக்னல் சேர்க்கப்படுவதையும், ஒரு கருத்துடன் - வெற்று சமிக்ஞையையும் நீங்கள் அவதானிக்கலாம்.
6 பெயரிடப்பட்ட குறிப்பான்கள் (A - E) இருப்பதையும், இந்த குறிப்பான்களுக்கு இடையே உள்ள நேர மதிப்பை ps இல் உள்ளமைப்பதையும் கவனியுங்கள்.
View
தி View சிக்னல் துணை சாளரத்தில் நிலை உருப்படிகள் மற்றும் மதிப்புகளின் வரைகலை ரெண்டரிங் தொடர்பான பல்வேறு பண்புக்கூறுகளைக் கட்டுப்படுத்த துணைமெனு பயன்படுத்தப்படுகிறது. இந்த மெனுவிலிருந்து, நீங்கள் சிக்னல் சாளரத்தை கருப்பு மற்றும் வெள்ளை அல்லது வண்ணமாக மாற்றலாம். தி View வினாடிகள் (வினாடிகள்) முதல் ஃபிகோசெகண்டுகள் (எஃப்எஸ்) வரையிலான நேர பரிமாணத்தை மாற்ற துணைமெனு உங்களுக்கு உதவுகிறது. பயனர் இந்த விருப்பத்தை கண்டுபிடிக்க முடியும் View → நேர பரிமாணத்திற்கு அளவு → fs.
உதவி
உதவி துணைமெனுவில் ஆன்-லைன் உதவியை இயக்குவதற்கும் நிரல் பதிப்புத் தகவலைக் காண்பிப்பதற்கும் விருப்பங்கள் உள்ளன.
முடிவுரை
இந்த ஆவணம் பயனரின் வடிவமைப்பை வெற்றிகரமாக உருவகப்படுத்துவதற்கும், தேவையான சோதனைப் பெஞ்சை சரிசெய்து செயல்பாட்டைச் சரிபார்ப்பதற்கும், அலைவடிவங்களைக் காட்டுவதற்கும் முடிவுகளைக் கவனிப்பதற்கும் GTKWave உடன் Icarus Verilog ஐப் பயன்படுத்துவதற்கும் உதவுவதற்காக உருவாக்கப்பட்டது.
மீள்பார்வை வரலாறு
திருத்தம் | தேதி | விளக்கம் |
1.00 | மே 20, 2024 | ஆரம்ப வெளியீடு. |
R19US0011EU0100 Rev.1.0
மே 20, 2024
© 2024 Renesas Electronics
ஆவணங்கள் / ஆதாரங்கள்
![]() |
RENESAS ForgeFPGA மென்பொருள் உருவகப்படுத்துதல் [pdf] பயனர் வழிகாட்டி REN_r19us0011eu0100, ForgeFPGA மென்பொருள் உருவகப்படுத்துதல், ForgeFPGA மென்பொருள், ForgeFPGA, ForgeFPGA உருவகப்படுத்துதல், மென்பொருள் உருவகப்படுத்துதல், உருவகப்படுத்துதல், மென்பொருள் |