ความรู้เกี่ยวกับภาษา
วีเอชดีแอล (VHDL)
<< 5.1 ความหมายของภาษา VHDL
<< 5.2 การออกแบบแบบบนลงล่าง (Top-Down Design)
<< 5.3 ส่วนประกอบต่างๆ ของภาษา VHDL
<< 5.4 สถาปัตยกรรมของภาษา VHDL
<< 5.5 ชุดคำสั่งในภาษา VHDL
5.1 ความหมายของภาษา VHDL
VHDL ย่อมาจากคำว่า VHSIC Hardware Description Language (VHSIC :Very High SpeedIntegrated
Circuit) เป็นภาษาโปรแกรมระดับสูง (High Level Language) ที่ใช้สำหรับการออกแบบฮาร์ดแวร์ในระบบดิจิตอล ตัวของภาษา
สามารถบรรยายพฤติกรรมการทำงานในรูปของลำดับชั้น (Hierarchy ) และ สามารถเขียนได้หลายรูปแบบ ด้วยเหตุผลนี้จึงทำให้ภาษา
VHDL เป็นเครื่องมือที่ใช้ออกแบบตั้งแต่ขั้นตอนบนสุดคือ แนวความคิดที่จะแก้ปัญหา ลงไปทีละขั้นจนถึงขั้นตอนของการสร้างวงจรจริง
และตัวภาษาก็เปิดโอกาสให้ได้พัฒนาและจำลองการทำงานของรูปแบบฟังก์ชันการทำงานของวงจรอย่างสังเขป โดยยังไม่ต้องคำนึงถึง
รายละเอียดเกี่ยวกับโครงสร้างวงจรจริง นอกจากนั้น VHDL ยังเป็นภาษาที่สนับสนุนลักษณะต่างๆ ของระบบดิจิตอลที่มี ความซับซ้อนได้
ทั้งหมด วิวัฒนาการของภาษา VHDL เริ่มต้นประมาณปี ค.ศ. 1981 เมื่อกระทรวงกลาโหมสหรัฐอเมริกา หรือ DoD (Department
of Defense) ได้พยายามปรับปรุงอุปกรณ์อิเล็กทรอนิกส์และคอมพิวเตอร์ที่ใช้ในกิจการทางทหาร ให้มีความทันสมัยมากขึ้นประกอบกับ
เทคโนโลยีทางด้านไมโคร-อิเล็กทรอนิกส์มีการพัฒนาไปอย่างรวดเร็วดังจะเห็นได้ จากการนำวงจรดิจิตอลหลายๆ วงจรมาทำการผลิตอยู่บน
แผ่นซิลิกอนที่มีพื้นที่เพียง 1- 2 ตารางเซนติเมตรเท่านั้น ซึ่ง เป็นผลให้ประสิทธิภาพในการทำงานของวงจรสูงขึ้นตลอดจนความน่าเชื่อถือ
ในการทำงานและความคงทนต่อสภาพ แวดล้อมสูง
ในปี 1986 ภาษา VHDL ได้เริ่มมีการปรับปรุงภาษา VHDL เพื่อให้สามารถกำหนดเป็นมาตรฐานของ IEEE โดยสามารถประกาศ
เป็นมาตรฐานได้ในเดือนธันวาคมปี 1987 โดยอยู่ในหมวด IEEE 1076 – 1987 หลังจากนั้นก็ได้มีการพัฒนาปรับปรุงอย่างต่อเนื่องโดย
ได้มีประกาศปรับปรุงอีกครั้งในปี 1993 ซึ่งเรียกว่า IEEE 1076 – 1993 โดยได้มีการเพิ่มเติม Syntax พิเศษเพื่อให้ผู้ใช้สามารถใช้งาน
ได้สะดวกมากยิ่งขึ้น สำหรับขีดความสามารถในการออกแบบโดยใช้ภาษา VHDL นั้นสามารถออกแบบได้เฉพาะวงจรที่มีลักษณะเป็น Digital
เท่านั้นส่วนวงจรที่เป็น Analog ในขณะนี้ยังไม่สามารถออกแบบได้โดยการใช้ภาษา VHDL แต่จะทำได้ในอนาคต
|
||||||||||||
5.2 การออกแบบแบบบนลงล่าง (Top-Down Design)
เป็นการออกแบบที่เน้นความถูกต้อง และประสิทธิภาพในการทำงานของวงจรที่ออกแบบโดยจะใช้การออกแบบ ในลักษณะที่เรียกว่า
High-level behavioral description จะมีการแบ่งวงจรทั้งหมดที่ต้องการออกแบบออกเป็นส่วน แล้วทำการออกแบบในแต่ละส่วน
แล้ว จำลองการทำงานของวงจร ในแต่ละส่วนแยกอิสระออกจากกันเพื่อตรวจสอบความถูกต้อง ของหน้าที่การทำงานของวงจรและ
ประสิทธิภาพการทำงานของวงจร ขั้นต่อไปก็จะนำการออกแบบไปสังเคราะห์ เพื่อให้ได้เป็นวงจรในระดับ Gate Level แล้วทำการ
จำลองการทำงาน เพื่อตรวจสอบความล่าช้าของการทำงานภายในวงจร และทดสอบประสิทธิภาพการทำงานของวงจรก่อนที่จะนำไป
Implement เป็น Hardware
รูปที่ 5.1 ขั้นตอนการออกแบบจากบนลงล่าง
5.2.1 System Specification and Analysis ขั้นตอนการสร้างข้อกำหนดของความต้องการ และวิเคราะห์ระบบ เพื่อหา
แนวความคิดและหลักการ(Idea and Concept) ในการแก้ปัญหา
5.2.2 Modeling and Simulation ขั้นตอนการเขียนรูปแบบของระบบที่ต้องการออกแบบโดยใช้ภาษาวีเอชดีแอลหรือ ภาษาเอชดีแอล
อื่นๆ สำหรับบรรยายพฤติกรรมการทำงาน พร้อมทั้งจำลองการทำงาน เพื่อเปรียบเทียบและตรวจสอบความถูกต้องกับข้อกำหนด
5.2.3 Logic and Test Synthesis หลังจากที่ได้หลักการขั้นต้นพร้อมกับแนวความคิดที่ผ่านการตรวจสอบแล้ว หลักการนี้จะถูกเพิ่ม
เติมในรายละเอียดลงมาเป็นลำดับขั้นที่สอง จนกระทั่งอยู่ในระดับที่จะนำไปผลิตวงจร หรือสังเคราะห์ ในขั้นตอนนี้เองเทคโนโลยีที่จะมา
รองรับวงจรออกแบบจะถูกกำหนดขึ้นและระบบช่วยการออกแบบจะสังเคราะห์วงจรที่ได้จากรูปแบบที่เขียนขึ้น ให้อยู่ในรูปของวงจรที่
ประกอบด้วยอุปกรณ์อิเล็กทรอนิกส์ หรือวงจรในระดับเกตและการเชื่อมต่อระหว่างกันของอุปกรณ์เหล่านั้น หรือไม่ก็อยู่ในรูปของเน็ทลิสท์
(Netlist) ที่สามารถนำไปผลิตลงบนอุปกรณ์อื่นได้
5.2.4. Pre-Timing Verification หลังจากการสังเคราะห์วงจรให้อยู่ในรูประดับเกตหรือเน็ทลิสท์แล้วข้อมูลที่ได้จากผู้ผลิตอุปกรณ์
วงจรนั้น นอกจากจะเป็นข้อมูลสำหรับจำลองการทำงาน ในเรื่องของความถูกต้องของฟังก์ชันแล้ว ยังมีข้อมูลที่เกี่ยวกับเวลาด้วยซึ่งเป็นความ
จริงที่ว่าอุปกรณ์ทางอิเล็กทรอนิกส์ทุกชิ้นจะมีเวลาหน่วงของการแพร่กระจาย (Propagation delay time) เสมอ ถึง แม้ว่าจะเป็นเวลา
ที่น้อยมากในระดับนาโนวินาที (10-9 นาที) แต่ถ้าภายในวงจรหนึ่งประกอบด้วยเกตของฟังก์ชันต่างๆ จำนวน 10,000 เกต ขึ้นไป เวลาดัง
กล่าวนี้จะสะสมกันมากขึ้น จนอาจจะทำให้การทำงานของวงจรรวมทั้งหมดผิดไปหรือไม่สามารถทำงานในย่านความถี่สัญญาณนาฬิกาที่
สูงได้
5.2.5 Physical Design and Analysis ขั้นตอนของการผลิตเป็นวงจรจริง (Technology and device mapping) โดยนำ
ข้อมูลที่ได้จากการสังเคราะห์มาผลิต ซึ่งอาจจะอยู่ในรูปของแผงวงจรไฟฟ้า ที่ประกอบด้วยอุปกรณ์หลายๆ ชิ้น หรืออยู่ในรูปของวงจรรวม
(ASIC)
5.2.6 Post-Timing Verification หลังจากที่ได้วงจรจริงมาแล้ว ยังต้องมีความจำเป็นที่ต้องตรวจสอบการทำงานที่คำนึงถึงเวลาด้วย
เพื่อความถูกต้องของวงจรครั้งสุดท้ายก่อนที่จะนำไปรวม เข้ากับอุปกรณ์อื่นๆ ให้เป็นระบบดิจิตอลเพราะในขั้นตอนนี้วงจรที่ออกแบบจะ
ประกอบด้วยอินพุตและเอาต์พุต แพด (Pad) ซึ่งเป็นจุดต่อสำหรับรับและส่งสัญญาณกับภายนอก
5.2.7 System Level Verification หลังจากที่นำวงจรที่ออกแบบรวมเข้ากับอุปกรณ์อื่นๆ ให้เป็นระบบดิจิตอลแล้วนั้น จะต้องทดสอบ
การทำงานรวมทั้งระบบร่วมกับอุปกรณ์อื่นๆอีกครั้ง เป็นการควบคุมคุณภาพของผลิตภัณฑ์
<< Go To Top
|
||||||||||||
5.3 ส่วนประกอบต่างๆ ของภาษา VHDL
5.3.1 หน่วยการออกแบบเอนทิตี (Entity Design Unit)
หน่วยการออกแบบนี้เป็นส่วนที่ใช้สำหรับติดต่อ ระหว่างโลกภายนอกกับรูปแบบที่เขียนขึ้น ที่เรียกว่า หน่วยการออกแบบเอนทิตี
ในส่วนนี้ใช้กำหนดจุดเชื่อมต่อของรูปแบบ กำหนดทิศทาง การไหลของสัญญาณ และประเภทของค่าที่สามารถกำหนดให้กับสัญญาณ
ตามจุดต่างๆ ของข้อมูลที่ไหลผ่านจุดต่อเหล่านั้น
รูปที่ 5.2 โครงสร้างของ entity design unit
ส่วนนี้จะขึ้นต้นด้วยคำ ENTITY และ IS ระหว่างคำทั้งสองเป็นส่วนสำหรับชื่อของรูปแบบที่ต้องการจะเขียน
(component_name)สำหรับการตั้งชื่อนั้น ต้องเป็นไปตามกฎเกณฑ์ของภาษาหลัง จากนั้นจะตามด้วยส่วนที่ใช้กำหนด
ช่องทางเข้า และออกของข้อมูล (input - output) รวมทั้งพารามิเตอร์ อื่นๆ ส่วนนี้เรียกว่า ส่วนหัว (entity header)
และที่สำคัญคือ หน่วยการออกแบบเอนทิตีจะต้องปิดท้ายด้วยคำว่า END และต้องเป็นชื่อของ (component_name)
นั้นกับเครื่องหมายอัฒภาคเสมอ (;)
รูปที่ 5.3 ตัวอย่างการออกแบบเอนทิตี (Entity Design Unit)
Ports
IN : คือ สัญญาณอินพุต
OUT : คือ สัญญาณเอาต์พุต
INOUT : คือ สัญญาณสองทิศทางเป็นทั้งสัญญาณอินพุตและสัญญาณเอาต์พุต
BUFFER : คือ สัญญาณที่ออกมาจาก component
|
||||||||||||
5.3.2 หน่วยการออกแบบสถาปัตยกรรม (Architecture Design Unit) คือส่วนที่ใช้เขียนบรรยายพฤติกรรมของรูปแบบ ในมุมมองของการจำลองการทำงาน พฤติกรรมต่างๆ ที่บรรยายในส่วน นี้ขึ้นอยู่กับข้อมูลที่ผ่านเข้าและออก ตรงช่องทางตลอดจนพารามิเตอร์ต่างๆ ที่กำหนดใน หน่วยการออกแบบเอนทิตี
รูปที่ 5.4 การออกแบบสถาปัตยกรรม
ส่วนของหน่วยการออกแบบสถาปัตยกรรม เริ่มต้นด้วยคำ ARCHITECTURE และตามด้วยชื่อ (identifier) สิ่งที่ต้อง
กำหนดลงไปได้แก่ สิ่งที่แสดงให้เห็นว่า architecture นั้นใช้บรรยายหน่วยการออกแบบเอนทิตีใดๆ (OF <entity design unit> IS)
ส่วนที่อยู่ระหว่าง ARCHITECTURE และBEGIN เป็นพื้นที่ส่วนประกาศหน่วยของสถาปัตยกรรมกำหนด (architecture
declarative area) ที่เป็นเพียงส่วนเผื่อเลือก (option) ในบริเวณนี้สามารถใช้เขียนประกาศกำหนดค่าต่างๆ ที่จะนำไปใช้ภายใน
สถาปัตยกรรมนั้นได้ อาทิเช่นประเภท (type) ต่างๆ (ตัวอย่างเช่น bit, bit_vector), สัญญาณ (signal), ตัวคงที่ (constant),
โปรแกรมย่อย (ได้แก่ function และ procedure) และอุปกรณ์ (component) ส่วนที่ใช้บรรยายความสัมพันธ์ระหว่างข้อมูลที่ไหลเข้า
และไหลออกของรูปแบบ (สัญญาณที่กำหนดในชุดคำสั่ง PORT) นั้นจะถูกบรรยายในบริเวณเนื้อที่ระหว่างคำว่า BEGIN กับ END
ของหน่วยการออกแบบสถาปัตยกรรม หน่วยการออกแบบสถาปัตยกรรม จะต้องปิดท้ายด้วยคำสั่ง END และชื่อของสถาปัตยกรรมนั้นๆ
รูปที่ 5.5 ตัวอย่างการออกแบบสถาปัตยกรรม (Architecture Design Unit)
<< Go To Top
|
||||||||||||
5.4 สถาปัตยกรรมของภาษา VHDL
5.4.1 Behavioral Description
การเขียนรูปแบบลักษณะของ behavioral description ของระบบดิจิตอลด้วยภาษา VHDLนั้น ถูกจัดให้อยู่ในประเภท
ของการบรรยายที่ไม่ต้องมีการอ้างถึงรูปแบบย่อย(submodel) ภายในarchitectureนั้นอีก ทั้งนี้จะไม่รวมถึงการเรียกโปรแกรม
ย่อย (subprogram) ที่สามารถเกิดขึ้นได้เสมอในรูปแบบลักษณะนี้ แต่จะหมายถึงการอ้างถึงอุปกรณ์ที่ถูกกำหนดด้วย VHDL
ก่อนแล้วลักษณะของ behavioral descriptionโดยทั่วไปแล้วจะเป็นขั้นตอนของการบรรยายที่จะกำหนดฟังก์ชั่นของการทำงาน
รูปที่ 5.7 แสดงการออกแบบ Behavioral Description ของ 2 Line Multiplexer
5.4.2 Structural Description
การบรรยายในลักษณะโครงสร้าง (structural description) ด้วยภาษา VHDL จัดอยู่ในประเภทการแสดงด้วยการ
แทนที่โดยอุปกรณ์(ในที่นี้หมายถึงอุปกรณ์ที่อยู่ในรูปแบบของ VHDL คือ entity และ architecture design unit )
และการเชื่อมต่อภายในระหว่างอุปกรณ์ต่างๆประกอบกันขึ้นเป็นวงจรหรือระบบดิจิตอล และสามารถเรียกอีกอย่างได้ว่า
“ netlist representation “ เป็นการเขียนที่แสดงให้เห็นโครงสร้างของ hardware
รูปที่ 5.8 แสดงการออกแบบ Structural Description ของ 2 Line Multiplexer
|
||||||||||||
5.4.3 Dataflow Description
เรียกอีกอย่างหนึ่งได้ว่า “ Register Transfer Level” (RTL) เป็นรูปแบบที่ถูกเขียนขึ้น เพื่อจุดประสงค์ที่จะใช้
เครื่องมือสำหรับสังเคราะห์วงจรอัตโนมัติ รูปแบบลักษณะนี้ส่วนใหญ่จะเป็นProcedural constructs และ function
operaters
รูปที่ 5.9 แสดงการออกแบบ Dataflow Description ของ 2 Line Multiplexer
5.4.4 Mixed Model Description
จากคุณสมบัติที่อ่อนตัวของภาษา VHDL จึงสามารถที่จะเขียนรูปแบบ โดยใช้ลักษณะต่างๆ ที่กล่าวมาแล้วข้างต้น
บรรยายวงจรหรือระบบดิจิตอลเดียวกันได้ ฉะนั้นรูปแบบเช่นนี้จึงมีการเขียนแบบผสม
รูปที่ 5.10 แสดงการออกแบบ Mixed Model Description
<< Go To Top
|
||||||||||||
5.5 ชุดคำสั่งในภาษา VHDL 5.5.1 Standard Type - BOOLEAN คือกลุ่มของค่า FALSE และ TRUE - BIT คือกลุ่มของค่า ‘0’ และ ‘1’ - INTEGER คือ กลุ่มของค่า -214748347 ถึง 214748347 - REAL คือ กลุ่มของค่า -1.0E38 ถึง 1.05E38 - CHARACTER คือกลุ่มของค่า พยัญชนะ ‘A’-‘Z’, ’a’-‘z’ อักษรหรือเครื่องหมายพิเศษ และอักษรควบคุม - TIME ได้แก่หน่วยเวลาที่มีค่าพื้นฐานเป็นวินาที (second ย่อด้วย s หรือ S) 5.5.2 ชุดคำสั่งลำดับ (Squential Statements) 5.5.2.1 Process Statement ชุดคำสั่ง Process เป็นพื้นฐานที่สำคัญที่สุด สำหรับการเขียนรูปแบบในลักษณะของ behavioral และกฎเกณฑ์ในการเขียนตามที่แสดงดังรูป
รูปที่ 5.11 โครงสร้างของ process statement
คำ PROCESS ในบรรทัดแรกของโครงสร้าง แสดงถึงจุดเริ่มต้นของชุดคำสั่ง process ส่วนที่เป็น option
ได้แก่ label นั้นสามารถใช้เป็นที่สำหรับเขียนชื่อของ PROCESS เพื่อป้องกันการสับสนเพราะในบางกรณีใน architecture
หนึ่งอาจจะมีโครงสร้างของชุดคำสั่ง process หลายชุดได้ คำ END PROCESS บอกถึงจุดสิ้นสุดของชุดคำสั่ง process
และเช่นเดียวกับ label เป็นเพียงสิ่งเผื่อเลือกหรือ optionแต้ถ้าจะเขียนกำกับลงไป จะต้องเป็นชื่อเดียวกับที่เขียนไว้ตอนต้นก่อนคำ
PROCESS
เมื่อที่ชุดคำสั่ง process ถูกกระตุ้นด้วยสัญญาณใน sensitivity list แล้วจะเริ่มทำงานตามคำสั่งสุดท้ายที่บรรทัดล่างสุด
อันได้แก่คำสั่ง END PROCESS ซึ่งเรียกการทำงานในลักษณะเช่นนี้ว่า “การทำงานแบบลำดับหรือ sequential” เมื่อคำสั่ง
END PROCESS ถูกปฏิบัติแล้ว ชุดคำสั่ง process จะหยุดการทำงานลงชั่วขณะ (แต่ยังคง active อยู่ตลอดเวลา) จนกว่า
จะมีสัญญาณอย่างน้อยตัวใดตัวหนึ่งใน sensitivity list เกิด event ขึ้นอีก
5.5.2.2 Wait Statement
ในภาษา VHDL สามารถใช้ wait statement ได้ 4 แบบคือ
1. WAIT ON signal_list; -- signal sensitivity
2. WAIT UNTIL condition; --condition
3. WAIT FOR time; -- timeout
4. WAIT; -- forever
ซึ่งแต่ละอย่างมีความหมายและวิธีใช้แตกต่างกันตามตัวอย่างต่อไปนี้
WAIT ON clock,clear,present,d;
คำสั่งนี้จะหยุดการทำงานของชุดคำสั่งลำดับ ไว้จนกว่าจะเกิด event ขึ้นที่สัญญาณ clock หรือ clear หรือ present หรือ d
WAIT UNTIL (clock=’1’);
การทำงานของชุดคำสั่งลำดับจะหยุดที่ตำแหน่งนี้ และจะทำงานต่อไปเมื่อสัญญาณ clock หรือ Event และ Boolean
expression ภายในวงเล็บ (clock=’1’) เป็น TRUE ทุกครั้งเมื่อลำดับการทำงานถูกหยุดตรงจุดนี้ และก่อนที่จะทำต่อไปได้นั้น
ก่อนอื่นต้องตรวจสอบ ว่ามี event เกิดขึ้น บนสัญญาณ clock หรือเปล่า และข้อแม้ที่ว่า (หลังจากเกิดแล้ว) สัญญาณ clock มีค่า
เป็น ‘1’ ฉะนั้นBoolean expression จะต้องเป็นจริง (TRUE)
WAIT FOR 10 NS;
คำสั่งนี้เป็นการรอหรือหยุดในขณะที่จำลองการทำงาน (simulation) จนกว่าเวลาการจำลอง (simulation time) จะล่วงเลยไป
แล้ว 10 ns. จะมีผลทำให้ PROCESS เริ่มทำงานต่อไปได้ คำสั่งนี้สามารถนำไปใช้เขียนรูปแบบได้อย่างมีประสิทธิภาพ ใน
สถานการณ์ที่เรียกว่า “time out”
WAIT;
เป็นการคำสั่งให้ PROCESS หยุดการทำงานตลอดไป โดยไม่มีการเริ่มต้นการทำงานใหม่ บางครั้งการเขียนรูปแบบการบรรยาย
การทำงานของ ระบบดิจิตอล มีความจำเป็นที่ต้องใช้คำสั่งนี้ เพื่อหยุดการทำงานของ PROCESS อย่างถาวร
5.5.2.3 IF-THEN-ELSE statement
รูปที่ 5.12 โครงสร้างของ IF-THEN-ELSE statement
ตัวอย่างที่สามารถจะเขียน IF-THEN-ELSE statement ได้หลายรูปแบบ
(ก)
(ข)
(ค)
รูปที่ 5.13 ตัวอย่าง IF-THEN-ELSE statement
5.5.2.4 CASE Statement
รูปที่ 5.14 โครงสร้างของ CASE Statement
คำสั่ง CASE และ END CASE กำหนดจุดเริ่มต้น และจุดสิ้นสุดของ case statement คำสั่ง WHEN
ใช้สำหรับกำหนดตัวเลือก ที่จะนำมาเปรียบเทียบกับ expression ตัวเลือกใดเป็นไปตาม expression ข้างบน PROCESS
จะเริ่มต้นทำงานที่ชุดคำสั่งลำดับที่ตามมา จนกระทั่งคำสั่งสุดท้ายของตัวเลือกนั้นๆ และออกจาก CASE statement โดยไม่
ทำหนทางเลือกอื่นๆ ที่ยังคงเหลืออยู่ดังตัวอย่าง
รูปที่ 5.15 Behavioral model ของ 4:1 clocked multiplex (Case cluase)
5.5.2.5 LOOP Statement คือ การทำงานในลักษณะลำดับที่เป็นวงรอบ (loop)
รูปที่ 5.16 โครงสร้างของ LOOP Statement
คำสั่ง LOOP และ END LOOP แสดงตำแหน่งของจุดเริ่มต้น และจุดสิ้นสุดของ loop statement จาก
โครงสร้างจะเห็นว่าสามารถสร้างloop ได้สองลักษณะคือ FOR- LOOP และ WHILE- LOOP
- FOR- LOOP:
กลุ่มคำสั่งลำดับใน FOR- LOOP จะทำงานเป็นวงรอบตราบเท่าที่ ค่าของพารามิเตอร์ยังอยู่ในขอบข่าย(range)ที่กำหนด
รูปที่ 5.17 โครงสร้างของ FOR- LOOP
รูปที่ 5.18 ตัวอย่างการใช้ FOR- LOOP
- WHILE- LOOP:
รูปที่ 5.19 โครงสร้าง WHILE- LOOP
กลุ่มคำสั่งลำดับใน WHILE- LOOP จะทำงานเป็นวงรอบไปเรื่อยๆ จนตราบเท่าที่ข้อแม้ของ boolean expression
ใน WHILE- LOOP ยังมีค่าเป็น TRUE จำนวนครั้ง (รอบ) ที่จะถูกควบคุมจากภายในตัวของ loop เอง นั้นคือการจะออกจาก
วงจรอบประเภทนี้ได้ ก็ต่อเมื่อผลลัพธ์ของ boolean expression ได้ค่าเป็น FALSE ข้อแม้ที่ใช้ควบคุมการทำงานี้ จะถูก
ตรวจสอบทุกครั้งก่อนการทำงานต่อไปภายในวงรอบ นั้นคือถ้าตรวจพบว่า boolean expression มีค่าเป็น FALSE เมื่อใดกลุ่ม
คำสั่งลำดับทุกๆอันจะไม่ถูกทำงาน แต้ถ้าพบว่าค่า boolean expression มีค่าเป็น TRUE ทำให้กลุ่มคำสั่งลำดับภายในวงรอบ
การทำงาน ทั้งนี้จะต้องไม่มีคำสั่งใดๆ ที่เป็นสาเหตุทำให้เกิดวงรอบของการทำงานที่ไม่มีสิ้นสุด (infinite loop)
รูปที่ 5.20 ตัวอย่างสำหรับการใช้งาน WHILE- LOOP
<< Go To Top
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น