Original Title: JAVA API for Boundary Scan of FPGA System
Source: li01.tci-thaijo.org
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

API ភាសា JAVA សម្រាប់ការស្កេនព្រំដែន (Boundary Scan) នៃប្រព័ន្ធ FPGA

ចំណងជើងដើម៖ JAVA API for Boundary Scan of FPGA System

អ្នកនិពន្ធ៖ Mongkol Asawaplungkul (Information Technology Department, Seagate Technology (Thailand) Ltd.), Pradondet Nilagupta (Department of Computer Engineering, Kasetsart University)

ឆ្នាំបោះពុម្ព៖ 2002 Kasetsart J. (Nat. Sci.)

វិស័យសិក្សា៖ Computer Engineering

១. សេចក្តីសង្ខេបប្រតិបត្តិ (Executive Summary)

បញ្ហា (The Problem)៖ ការធ្វើតេស្តបន្ទះសៀគ្វីអេឡិចត្រូនិកដែលមានទំហំតូចជួបប្រទះភាពស្មុគស្មាញ និងចំណាយខ្ពស់ ដោយសារខ្វះចំណុចភ្ជាប់សម្រាប់ឧបករណ៍តេស្តធម្មតា (Bed-of-nails)។ ការស្រាវជ្រាវនេះមានគោលបំណងដោះស្រាយបញ្ហានេះតាមរយៈការបង្កើតចំណុចប្រទាក់ API ដែលមានតម្លៃទាបសម្រាប់ប្រើប្រាស់បច្ចេកទេសស្កេនព្រំដែន (Boundary-Scan)។

វិធីសាស្ត្រ (The Methodology)៖ ការស្រាវជ្រាវនេះបានរចនាសៀគ្វីភ្ជាប់កុំព្យូទ័រ និងបង្កើតកម្មវិធី Java API ផ្អែកលើស្តង់ដារ IEEE 1149.1 ដើម្បីភ្ជាប់ទៅកាន់ច្រកតេស្ត (Test Access Port) របស់ឧបករណ៍ FPGA ។

លទ្ធផលសំខាន់ៗ (The Verdict)៖

២. ការវិភាគលើប្រសិទ្ធភាព និងដែនកំណត់ (Performance & Constraints)

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Traditional Bed-of-nails Testing / Expensive ATE
ការធ្វើតេស្តដោយប្រើឧបករណ៍ Bed-of-nails និងឧបករណ៍តេស្តតម្លៃថ្លៃ (ATE)
មានប្រសិទ្ធភាពខ្ពស់សម្រាប់បន្ទះសៀគ្វីធំៗជំនាន់មុន ដែលមានចន្លោះសម្រាប់ភ្ជាប់ជើងសាកល្បងដោយផ្ទាល់។ មិនត្រូវការការរចនាសៀគ្វីបន្ថែម (DFT) ស្មុគស្មាញនៅលើបន្ទះនោះទេ។ មានតម្លៃថ្លៃខ្លាំង និងមិនអាច ឬពិបាកប្រើប្រាស់ជាមួយបន្ទះសៀគ្វីជំនាន់ថ្មីដែលមានទំហំតូច (ដូចជា BGA និង SMT) ដោយសារគ្មានកន្លែងសម្រាប់ភ្ជាប់ឧបករណ៍។ មិនស័ក្តិសម និងមានការចំណាយខ្ពស់ពេកសម្រាប់បច្ចេកវិទ្យាវេចខ្ចប់គ្រឿងអេឡិចត្រូនិកខ្នាតតូចទំនើប។
Java API Boundary-Scan via PC Parallel Port
ការស្កេនព្រំដែន (Boundary-Scan) តាមរយៈកម្មវិធី Java API និងច្រកប៉ារ៉ាឡែលរបស់កុំព្យូទ័រ
ចំណាយតិច ងាយស្រួលអភិវឌ្ឍនិងពង្រីកមុខងារដោយប្រើវិធីសាស្ត្រ Object-Oriented ក្នុងភាសា Java និងអាចតេស្តជើងសៀគ្វី (Pins) បានគ្រប់ជ្រុងជ្រោយដោយមិនបាច់ប៉ះផ្ទាល់។ ល្បឿនមានកម្រិតទាប (រាំងស្ទះដោយសារសមត្ថភាពរបស់ច្រកប៉ារ៉ាឡែលរបៀប SPP) និងទាមទារឱ្យមានការរៀបចំកូដ VHDL ជាមុន (Design-for-Test)។ សម្រេចបានប្រេកង់ស្កេនអតិបរមា 3.3574 KHz លើឧបករណ៍ FPGA XC4010E ដែលមាន 488 សែល (Cells) ដោយផ្តល់លទ្ធផលត្រឹមត្រូវតាមសៀគ្វីជាក់ស្តែង។

ការចំណាយលើធនធាន (Resource Cost)៖ ការស្រាវជ្រាវនេះតម្រូវឱ្យមានការរួមបញ្ចូលគ្នានូវផ្នែករឹងតម្លៃថោក កម្មវិធីអភិវឌ្ឍន៍សៀគ្វីឌីជីថល និងចំណេះដឹងផ្នែកសរសេរកូដកម្រិតខ្ពស់ ដើម្បីបង្កើតប្រព័ន្ធតេស្តនេះ។

៣. ការពិនិត្យសម្រាប់បរិបទកម្ពុជា/អាស៊ីអាគ្នេយ៍

ភាពលំអៀងនៃទិន្នន័យ (Data Bias)៖

ការសិក្សានេះត្រូវបានធ្វើឡើងនៅក្នុងប្រទេសថៃ (សហការរវាងក្រុមហ៊ុន Seagate និងសាកលវិទ្យាល័យកាសេតសាត) ដោយប្រើប្រាស់បន្ទះសៀគ្វី Xilinx XC4010E ជំនាន់ចាស់ និងច្រកប៉ារ៉ាឡែលកុំព្យូទ័រ (Parallel Port) ដែលបច្ចុប្បន្នហួសសម័យទៅហើយ។ ទោះជាយ៉ាងណាក៏ដោយ គោលគំនិតនៃការប្រើប្រាស់ JTAG សម្រាប់ការធ្វើតេស្តសៀគ្វីនៅតែមានសារៈសំខាន់ខ្លាំងសម្រាប់ការអប់រំផ្នែកវិស្វកម្ម ដោយវាផ្តល់នូវមូលដ្ឋានគ្រឹះដ៏ល្អសម្រាប់និស្សិតកម្ពុជាក្នុងការយល់ដឹងពីបច្ចេកទេស Design-for-Test (DFT) ក្នុងតម្លៃទាប។

លទ្ធភាពនៃការអនុវត្ត (Applicability)៖

វិធីសាស្ត្រក្នុងការបង្កើតឧបករណ៍តេស្តសៀគ្វីអេឡិចត្រូនិកតម្លៃទាបនេះ គឺមានអត្ថប្រយោជន៍ និងអាចយកមកអនុវត្តបាននៅក្នុងវិស័យអប់រំ និងឧស្សាហកម្មអេឡិចត្រូនិកខ្នាតតូចនៅកម្ពុជា។

ជារួម ការធ្វើបច្ចុប្បន្នភាពបច្ចេកទេសនេះទៅប្រើជាមួយច្រកតភ្ជាប់ទំនើប (ដូចជា USB ឬ Firewire) នឹងធ្វើឱ្យវាលេចចេញជាដំណោះស្រាយដ៏មានសក្តានុពល និងចំណាយតិចបំផុតសម្រាប់ការផលិត សាកល្បង និងអប់រំផ្នែកអេឡិចត្រូនិកនៅកម្ពុជា។

៤. ផែនការសកម្មភាពសម្រាប់និស្សិត (Actionable Roadmap)

ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖

  1. សិក្សាពីមូលដ្ឋានគ្រឹះនៃ Boundary-Scan និង JTAG: និស្សិតគួរចាប់ផ្តើមស្វែងយល់ពីស្តង់ដារ IEEE 1149.1 ដោយផ្តោតលើដំណើរការនៃម៉ាស៊ីន TAP Controller និងប្រភេទរេជីស្ទ័រ (Registers) ផ្សេងៗ។ អាចប្រើប្រាស់ឧបករណ៍ និងកម្មវិធីសាកល្បងតម្លៃថោកដូចជា OpenOCD ដើម្បីអនុវត្តជាក់ស្តែងជាមួយបន្ទះសៀគ្វីទំនើប។
  2. អនុវត្តការរចនាសៀគ្វី និងបញ្ចូលប្រព័ន្ធ Design-for-Test (DFT): ប្រើប្រាស់កម្មវិធីរចនាទំនើបដូចជា Xilinx VivadoIntel Quartus ដើម្បីសរសេរកូដ VHDL/Verilog និងបន្ថែមប្លុកកូដសម្រាប់បើកដំណើរការមុខងារស្កេនព្រំដែន (Boundary Scan Enabler) នៅលើបន្ទះអភិវឌ្ឍន៍ FPGA ជំនាន់ថ្មី។
  3. អភិវឌ្ឍន៍កម្មវិធីកុំព្យូទ័រ (Software Interface) ជាមួយច្រក USB: ជំនួសឱ្យការប្រើ Parallel Port ដែលហួសសម័យ និស្សិតគួរសរសេរកម្មវិធីកុំព្យូទ័រដោយប្រើភាសា PythonJava ដោយភ្ជាប់ទំនាក់ទំនងជាមួយឧបករណ៍ USB-to-JTAG Adapters (ឧទាហរណ៍ IC ប្រភេទ FTDI FT232H) តាមរយៈបណ្ណាល័យសូហ្វវែរ PyFtdi ឬតាមរយៈ JNI
  4. ទាញយកទិន្នន័យពី BSDL និងបង្កើតកម្មវិធីតេស្តស្វ័យប្រវត្តិ: សរសេរកូដសម្រាប់អាន និងទាញយកទិន្នន័យ (Parse) ពីឯកសារ BSDL (Boundary-Scan Description Language) របស់ក្រុមហ៊ុនផលិត ដើម្បីផ្គូផ្គងជើងសៀគ្វី (Pin Mapping) ដោយស្វ័យប្រវត្តិ និងបង្កើតចំណុចប្រទាក់ក្រាហ្វិក (GUI) សម្រាប់ត្រួតពិនិត្យដំណើរការសៀគ្វីទាំងមូល។

៥. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Boundary-Scan (ការស្កេនព្រំដែន) ជាបច្ចេកទេសធ្វើតេស្តសៀគ្វីអេឡិចត្រូនិកនៅលើបន្ទះ PCB ដោយមិនចាំបាច់ប្រើម្ជុលចាក់ផ្ទាល់លើជើងសៀគ្វី (Bed-of-nails) តែប្រើប្រាស់ខ្សែសញ្ញាបញ្ជូនទិន្នន័យជាស៊េរីកាត់តាមជើងសៀគ្វីនីមួយៗ (តាមរយៈរេជីស្ទ័រ) ដើម្បីពិនិត្យមើលស្ថានភាពនៃការតភ្ជាប់របស់វា។ ដូចជាការត្រួតពិនិត្យសុខភាពសិស្សម្នាក់ៗនៅក្នុងជួរ ដោយគ្រាន់តែឱ្យសិស្សចាប់ដៃគ្នាបន្តវេនប្រាប់ព័ត៌មានពីម្នាក់ទៅម្នាក់ ជំនួសឱ្យការដើរទៅពិនិត្យផ្ទាល់ម្តងម្នាក់ៗ។
JTAG / IEEE 1149.1 (ក្រុមសកម្មភាពតេស្តរួម / ស្តង់ដារ IEEE 1149.1) ជាស្តង់ដារអន្តរជាតិសម្រាប់អនុវត្តបច្ចេកទេសស្កេនព្រំដែន ដែលកំណត់ពីរបៀបភ្ជាប់ និងបញ្ជូនសញ្ញាតេស្តចំនួន ៤ ឬ ៥ (TDI, TDO, TMS, TCK, TRST) ចូលទៅក្នុងបន្ទះសៀគ្វីដើម្បីត្រួតពិនិត្យកំហុស។ ដូចជាច្បាប់ចរាចរណ៍អន្តរជាតិដែលគ្រប់គ្នាយល់ព្រមអនុវត្តតាម ដើម្បីធានាថាទិន្នន័យអាចធ្វើដំណើរឆ្លងកាត់សៀគ្វីផ្សេងៗគ្នាដោយមានរបៀបរៀបរយ។
FPGA (Field-Programmable Gate Array) (អារេក្លោងទ្វារដែលអាចសរសេរកម្មវិធីបាន) ជាប្រភេទបន្ទះសៀគ្វីរួមបញ្ចូលគ្នា (IC) ដែលអនុញ្ញាតឱ្យវិស្វករអាចសរសេរកូដរចនា និងផ្លាស់ប្តូរមុខងាររបស់វាតាមតម្រូវការ ទោះបីជាវាត្រូវបានផលិតចេញពីរោងចក្ររួចរាល់ហើយក៏ដោយ។ ដូចជាដុំឡេហ្គោ (Lego) ដែលអ្នកអាចយកមកផ្គុំជារូបរាងអ្វីក៏បាន (ឡាន ផ្ទះ រ៉ូបូត) ទៅតាមការគិតរបស់អ្នក ផ្ទុយពីប្រដាប់ក្មេងលេងដែលចាក់ពុម្ពចេញជារូបរាងស្រេច។
TAP Controller (Test Access Port Controller) (ឧបករណ៍បញ្ជាច្រកចូលតេស្ត) ជាម៉ាស៊ីនកំណត់ស្ថានភាព (State Machine) ដែលមាន ១៦ ស្ថានភាព នៅខាងក្នុងបន្ទះសៀគ្វី JTAG សម្រាប់គ្រប់គ្រងដំណើរការនៃការធ្វើតេស្ត ដូចជាការចាប់យកទិន្នន័យ (Capture) បញ្ជូនទិន្នន័យ (Shift) ឬធ្វើបច្ចុប្បន្នភាពទិន្នន័យ (Update)។ ដូចជាអ្នកប្តូរផ្លូវរថភ្លើងដែលអង្គុយរង់ចាំបញ្ជាដើម្បីកាច់ចង្កូតរថភ្លើងឱ្យចូលទៅផ្លូវត្រូវ ថាតើត្រូវឈប់ ត្រូវទៅមុខ ឬត្រូវទម្លាក់ទំនិញ។
BSDL (Boundary-Scan Description Language) (ភាសាពិពណ៌នាការស្កេនព្រំដែន) ជាឯកសារទិន្នន័យដែលផ្តល់ដោយក្រុមហ៊ុនផលិតសៀគ្វី ដែលពិពណ៌នាអំពីលក្ខណៈពិសេសនៃការស្កេនព្រំដែនរបស់បន្ទះសៀគ្វីនីមួយៗ (ដូចជាចំនួនជើងសៀគ្វី និងទីតាំងសែល) ដើម្បីឱ្យកម្មវិធីតេស្តអាចស្គាល់និងដំណើរការជាមួយវាបាន។ ដូចជាប្លង់អគារ ដែលប្រាប់អ្នករៀបចំកម្មវិធីថាអគារនេះមានទ្វារប៉ុន្មាន បន្ទប់ណាខ្លះ ដើម្បីងាយស្រួលដើរចូលពិនិត្យដោយមិនវង្វេង។
VHDL (VHSIC Hardware Description Language) (ភាសាពិពណ៌នាផ្នែករឹង) ជាភាសាសរសេរកូដកម្រិតខ្ពស់មួយប្រភេទដែលប្រើសម្រាប់ពិពណ៌នាពីរចនាសម្ព័ន្ធ និងអាកប្បកិរិយារបស់ប្រព័ន្ធសៀគ្វីឌីជីថល ដើម្បីយកទៅបំប្លែងបញ្ចូលទៅក្នុងឧបករណ៍ដែលអាចសរសេរកម្មវិធីបានដូចជា FPGA។ ដូចជាភាសាដែលស្ថាបត្យករប្រើសម្រាប់គូរប្លង់ផ្ទះលម្អិត ដើម្បីឱ្យជាងសំណង់យកទៅសាងសង់ឱ្យលេចចេញជារូបរាងពិតប្រាកដ។
Design-for-Test (DFT) (ការរចនាសម្រាប់ការធ្វើតេស្ត) ជាបច្ចេកទេសវិស្វកម្មដែលតម្រូវឱ្យមានការបញ្ចូលមុខងារ ឬសៀគ្វីពិសេសៗទៅក្នុងរចនាសម្ព័ន្ធដើមនៃប្រព័ន្ធតាំងពីដំណាក់កាលគូរប្លង់ ដើម្បីងាយស្រួលក្នុងការត្រួតពិនិត្យរកកំហុសពេលវាផលិតរួច។ ដូចជាការសាងសង់អគារដោយទុកច្រកសម្ងាត់ ឬទ្វារសុវត្ថិភាពតាំងពីពេលគូរប្លង់ ដើម្បីឱ្យអ្នកពន្លត់អគ្គិភ័យងាយស្រួលចូលជួយសង្គ្រោះពេលមានអាសន្ន។
JNI (Java Native Interface) (ចំណុចប្រទាក់ដើមរបស់ Java) ជាយន្តការមួយនៅក្នុងភាសា Java ដែលអនុញ្ញាតឱ្យកូដ Java អាចហៅ និងដំណើរការជាមួយបណ្ណាល័យកូដ (Libraries) ដែលសរសេរដោយភាសាផ្សេងទៀត (ដូចជា C/C++) ឬកូដដែលទាក់ទងដោយផ្ទាល់ជាមួយផ្នែករឹង (Hardware) ដូចជាច្រកប៉ារ៉ាឡែលរបស់កុំព្យូទ័រ។ ដូចជាអ្នកបកប្រែភាសាដែលជួយឱ្យអ្នកគ្រប់គ្រង (Java) អាចបញ្ជាផ្ទាល់ទៅកាន់កម្មករក្នុងស្រុក (Hardware) ដែលនិយាយភាសាផ្សេងគ្នាបានយ៉ាងរលូន។

៦. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖