Hardware Description Language
- Hardware Description Language
Hardware Description Language (HDL) என்பது, டிஜிட்டல் லாஜிக் சர்க்யூட்களை விவரிக்கப் பயன்படும் ஒரு கணினி மொழி ஆகும். இது, சர்க்யூட்களின் செயல்பாட்டை மட்டும் அல்லாமல், அவற்றின் கட்டமைப்பையும் விவரிக்கிறது. HDL-களைப் பயன்படுத்தி, வன்பொருளை வடிவமைத்து, உருவகப்படுத்தி, தொகுத்து (synthesize) செயல்படுத்த முடியும். இது எலக்ட்ரானிக் டிசைன் ஆட்டோமேஷன் (Electronic Design Automation - EDA) துறையில் ஒரு முக்கிய கருவியாக விளங்குகிறது.
HDL-களின் வகைகள்
HDL-களில் முக்கியமாக இரண்டு வகைகள் உள்ளன:
- VHDL (VHSIC Hardware Description Language): அமெரிக்க பாதுகாப்புத் துறையால் (U.S. Department of Defense) உருவாக்கப்பட்டது. இது ஒரு வலுவான வகைப்பாடு (strongly typed) கொண்ட மொழி. இதன் தொடரியல் (syntax) ஏடா (Ada) நிரலாக்க மொழியை ஒத்திருக்கும்.
- Verilog: இது கலிபோர்னியா பல்கலைக்கழகம், பெர்க்லியால் (University of California, Berkeley) உருவாக்கப்பட்டது. இது C நிரலாக்க மொழியைப் போன்ற தொடரியலைக் கொண்டுள்ளது. இது VHDL-ஐ விட எளிமையானது என்று கருதப்படுகிறது.
இந்த இரண்டு மொழிகளுமே, FPGA (Field-Programmable Gate Array) மற்றும் ASIC (Application-Specific Integrated Circuit) போன்ற சர்க்யூட்களை வடிவமைக்கப் பரவலாகப் பயன்படுத்தப்படுகின்றன. மேலும், சிஸ்டம் ஆன் சிப் (System on Chip - SoC) வடிவமைப்பிலும் இவை முக்கிய பங்கு வகிக்கின்றன.
HDL-களின் பயன்பாடுகள்
HDL-களின் பயன்பாடுகள் பலதரப்பட்டவை. அவற்றில் சில முக்கியமானவை கீழே கொடுக்கப்பட்டுள்ளன:
- சர்க்யூட் வடிவமைப்பு மற்றும் உருவகப்படுத்துதல்: HDL-களைப் பயன்படுத்தி, சர்க்யூட்களை வடிவமைத்து, அவற்றை உருவகப்படுத்திச் சோதிக்கலாம். இது, சர்க்யூட் சரியாகச் செயல்படுகிறதா என்பதை உறுதிப்படுத்த உதவுகிறது. உருவகப்படுத்துதல் (Simulation) என்பது ஒரு சர்க்யூட்டின் செயல்பாட்டை கணினி மாதிரியில் பிரதிபலிப்பதாகும்.
- லாஜிக் தொகுப்பு (Logic Synthesis): HDL குறியீட்டை, குறிப்பிட்ட தொழில்நுட்பத்திற்கு ஏற்ற லாஜிக் கேட்ஸ்களாக மாற்றும் செயல்முறை லாஜிக் தொகுப்பு ஆகும். இது, வடிவமைப்பைச் செயல்படுத்தக்கூடிய ஒரு வடிவமாக மாற்ற உதவுகிறது.
- சரிபார்ப்பு (Verification): வடிவமைப்பின் சரியான செயல்பாட்டை உறுதிப்படுத்த, HDL குறியீட்டைப் பல்வேறு சோதனைகளுக்கு உட்படுத்த வேண்டும். இது, பிழைகளைக் கண்டறிந்து சரிசெய்ய உதவுகிறது. சரிபார்ப்பு முறைகள் (Verification methodologies) வடிவமைப்பின் நம்பகத்தன்மையை உறுதிப்படுத்துகின்றன.
- வன்பொருள் விவரக்குறிப்பு (Hardware Specification): HDL, வன்பொருளின் விவரக்குறிப்பாகப் பயன்படுத்தப்படலாம். இது, மற்ற பொறியாளர்கள் வடிவமைப்பைப் புரிந்து கொள்ளவும், செயல்படுத்தவும் உதவுகிறது.
- கல்வி மற்றும் ஆராய்ச்சி: HDL, டிஜிட்டல் லாஜிக் வடிவமைப்பு மற்றும் கணினி கட்டமைப்பு போன்ற துறைகளில் கல்வி மற்றும் ஆராய்ச்சிக்காகப் பயன்படுத்தப்படுகிறது.
HDL-களின் அடிப்படை கூறுகள்
HDL-களில் பொதுவாகப் பயன்படுத்தப்படும் சில அடிப்படை கூறுகள் கீழே கொடுக்கப்பட்டுள்ளன:
- சிக்னல்கள் (Signals): சிக்னல்கள், சர்க்யூட்டில் தகவல்களைக் கொண்டு செல்லும் கம்பிகள் போன்றவை. இவை, மதிப்புகளைச் சேமித்து கடத்துகின்றன.
- போர்ட்கள் (Ports): போர்ட்கள், சர்க்யூட்டின் உள்ளீடு மற்றும் வெளியீடுகளை வரையறுக்கின்றன. இவை, சர்க்யூட்டுடன் வெளிப்புற உலகத்தின் தொடர்பை ஏற்படுத்துகின்றன.
- செயல்முறைகள் (Processes): செயல்முறைகள், சர்க்யூட்டின் செயல்பாட்டை வரையறுக்கின்றன. இவை, சிக்னல்களின் மதிப்புகளை மாற்றுகின்றன. ஒத்திசைவான மற்றும் ஒத்திசைவற்ற செயல்முறைகள் (Concurrent and sequential processes) HDL வடிவமைப்பில் முக்கியமானவை.
- மாற்றிகள் (Variables): மாறிகள், செயல்முறைகளுக்குள் மதிப்புகளைச் சேமிக்கப் பயன்படுகின்றன.
- நிலையானவை (Constants): நிலையானவை, மாறாத மதிப்புகளைக் குறிக்கின்றன.
VHDL-ன் கட்டமைப்பு
VHDL குறியீடு பொதுவாக நான்கு முக்கிய பகுதிகளாகப் பிரிக்கப்பட்டுள்ளது:
- நூலகங்கள் (Libraries): VHDL நூலகங்கள், முன் வரையறுக்கப்பட்ட கூறுகள் மற்றும் செயல்பாடுகளைக் கொண்டிருக்கின்றன.
- பயன்பாடுகள் (Use clauses): பயன்பாடுகள், நூலகங்களிலிருந்து குறிப்பிட்ட கூறுகளைக் கொண்டு வரப் பயன்படுகின்றன.
- உருவமைப்பு (Entity): உருவமைப்பு, சர்க்யூட்டின் உள்ளீடு மற்றும் வெளியீடுகளை வரையறுக்கிறது. இது, சர்க்யூட்டின் இடைமுகத்தை (interface) வரையறுக்கிறது.
- கட்டமைப்பு (Architecture): கட்டமைப்பு, சர்க்யூட்டின் செயல்பாட்டை வரையறுக்கிறது. இது, உருவமைப்பின் உள் செயல்பாடுகளைக் குறிக்கிறது.
பகுதி | விளக்கம் | நூலகம் | IEEE.std_logic_1164; | பயன்பாடு | use IEEE.std_logic_1164.all; | உருவமைப்பு | entity my_circuit is Port ( a : in STD_LOGIC; b : in STD_LOGIC; c : out STD_LOGIC); end my_circuit; | கட்டமைப்பு | architecture Behavioral of my_circuit is begin c <= a AND b; end Behavioral; |
Verilog-ன் கட்டமைப்பு
Verilog குறியீடு பொதுவாக இரண்டு முக்கிய பகுதிகளாகப் பிரிக்கப்பட்டுள்ளது:
- மாடியூல் அறிவிப்பு (Module declaration): மாடியூல் அறிவிப்பு, சர்க்யூட்டின் பெயரை மற்றும் அதன் உள்ளீடு மற்றும் வெளியீடுகளை வரையறுக்கிறது.
- மாடியூல் உள்ளடக்கம் (Module content): மாடியூல் உள்ளடக்கம், சர்க்யூட்டின் செயல்பாட்டை வரையறுக்கிறது. இது, சிக்னல் ஒதுக்கீடுகள், செயல்முறைகள் மற்றும் பிற HDL கூற்றுகளைக் கொண்டுள்ளது.
பகுதி | விளக்கம் | மாடியூல் அறிவிப்பு | module my_circuit ( input a, input b, output c); | மாடியூல் உள்ளடக்கம் | assign c = a & b; endmodule |
HDL-களில் உள்ள மேம்பட்ட கருத்துக்கள்
- பாராமீட்டர்கள் (Parameters): பாராமீட்டர்கள், வடிவமைப்பில் நெகிழ்வுத்தன்மையைக் கூட்டுகின்றன. இவை, வடிவமைப்பின் பண்புகளை மாற்றியமைக்க உதவுகின்றன.
- செயல்பாடுகள் (Functions): செயல்பாடுகள், மீண்டும் பயன்படுத்தக்கூடிய குறியீடு தொகுதிகளை உருவாக்குகின்றன.
- தொகுதிகள் (Packages): தொகுதிகள், தொடர்புடைய கூறுகள் மற்றும் செயல்பாடுகளை ஒன்றாகக் குழுவாக்குகின்றன.
- உருவகப்படுத்துதல் (Simulation): சர்க்யூட்டின் செயல்பாட்டை கணினி மாதிரியில் பிரதிபலிப்பதாகும்.
- நேரக் கட்டுப்பாடு (Timing constraints): சர்க்யூட்டின் செயல்திறனை மேம்படுத்த நேரக் கட்டுப்பாடுகளைப் பயன்படுத்தலாம்.
HDL-களைப் பயன்படுத்தி ஒரு எளிய AND கேட்டை வடிவமைத்தல்
VHDL-இல்:
```vhdl library IEEE; use IEEE.STD_LOGIC_1164.ALL;
entity AND_gate is
Port ( a : in STD_LOGIC; b : in STD_LOGIC; c : out STD_LOGIC);
end AND_gate;
architecture Behavioral of AND_gate is begin
c <= a AND b;
end Behavioral; ```
Verilog-இல்:
```verilog module AND_gate (
input a, input b, output c
);
assign c = a & b;
endmodule ```
இந்த எளிய உதாரணம், HDL-களைப் பயன்படுத்தி எப்படி லாஜிக் கேட்ஸ்களை வடிவமைக்கலாம் என்பதைக் காட்டுகிறது.
HDL-களில் தொழில்நுட்ப பகுப்பாய்வு மற்றும் உத்திகள்
- சிக்னல் இன்டெக்ரிட்டி (Signal Integrity): சிக்னல்களின் தரம் மற்றும் நம்பகத்தன்மையை உறுதிப்படுத்துவது.
- சக்தி குறைப்பு (Power Optimization): சர்க்யூட்டின் சக்திக் consumption-ஐ குறைக்கும் உத்திகள்.
- நேரப் பகுப்பாய்வு (Timing Analysis): சர்க்யூட்டின் செயல்திறனை மதிப்பிடுதல்.
- குறியீடு மறுபயன்பாடு (Code Reuse): ஏற்கனவே உள்ள குறியீட்டைப் பயன்படுத்தி புதிய வடிவமைப்புகளை உருவாக்குதல்.
- மேல்-கீழ் வடிவமைப்பு (Top-Down Design): ஒரு பெரிய வடிவமைப்பை சிறிய, நிர்வகிக்கக்கூடிய பகுதிகளாகப் பிரித்தல். மேல்-கீழ் வடிவமைப்பு முறை (Top-down design methodology) சிக்கலான வடிவமைப்புகளை எளிதாக்குகிறது.
- கீழ்-மேல் வடிவமைப்பு (Bottom-Up Design): சிறிய கூறுகளை உருவாக்கி, அவற்றை ஒன்றிணைத்து ஒரு பெரிய வடிவமைப்பை உருவாக்குதல்.
HDL-களில் அளவு பகுப்பாய்வு
- கேட் எண்ணிக்கை (Gate Count): வடிவமைப்பில் உள்ள லாஜிக் கேட்களின் எண்ணிக்கை.
- சர்க்யூட் தாமதம் (Circuit Delay): சிக்னல் ஒரு புள்ளியில் இருந்து மற்றொரு புள்ளிக்குச் செல்ல ஆகும் நேரம்.
- சக்தி நுகர்வு (Power Consumption): சர்க்யூட் பயன்படுத்தும் சக்தியின் அளவு.
- பரப்பளவு (Area): சர்க்யூட் சிப்பில் எடுக்கும் இடம்.
- செயல்திறன் (Performance): சர்க்யூட் எவ்வளவு வேகமாக செயல்படுகிறது.
எதிர்கால போக்குகள்
- உயர்-நிலை தொகுப்பு (High-Level Synthesis - HLS): C++, SystemC போன்ற உயர்-நிலை நிரலாக்க மொழிகளிலிருந்து HDL குறியீட்டை தானாக உருவாக்குதல்.
- செயற்கை நுண்ணறிவு (Artificial Intelligence - AI): HDL வடிவமைப்பை மேம்படுத்த AI மற்றும் இயந்திர கற்றல் (machine learning) பயன்பாடு.
- 3D IC வடிவமைப்பு (3D IC Design): முப்பரிமாண ஒருங்கிணைப்பு சர்க்யூட்களை வடிவமைத்தல்.
மேலும் தகவலுக்கு
- VHDL
- Verilog
- FPGA
- ASIC
- EDA
- உருவகப்படுத்துதல்
- சரிபார்ப்பு முறைகள்
- ஒத்திசைவான மற்றும் ஒத்திசைவற்ற செயல்முறைகள்
- மேல்-கீழ் வடிவமைப்பு முறை
இப்போது பரிவர்த்தனையை தொடங்குங்கள்
IQ Option-ல் பதிவு செய்யவும் (குறைந்தபட்ச டெபாசிட் $10) Pocket Option-ல் கணக்கு திறக்கவும் (குறைந்தபட்ச டெபாசிட் $5)
எங்கள் சமூகத்தில் சேருங்கள்
எங்கள் Telegram சேனலுக்கு சேர்ந்து @strategybin பெறுங்கள்: ✓ தினசரி பரிவர்த்தனை சமிக்ஞைகள் ✓ சிறப்பு உத்திகள் மற்றும் ஆலோசனைகள் ✓ சந்தை சார்ந்த அறிவிப்புகள் ✓ தொடக்க அடிப்படையிலான கல்வி பொருட்கள்