CONTACT | TEL : 02-728-3440, EMAIL : SALES@ASTRONLOGIC.COM
การใช้งาน Quartus II 4.2 Web Edition โปรแกรมสำหรับออกแบบ CPLD/FPGA ตอนที่ 2

» การใช้งาน Quartus II 4.2 Web Edition โปรแกรมสำหรับออกแบบ CPLD/FPGA ตอนที่ 2

ก่อนจะใช้งานโปรแกรม Quartus II 4.2 Web Edition จะต้องทำการติดตั้ง License File เรียบร้อยแล้ว วิธีการติดตั้ง License File สามารถอ่านได้จากบทความ การใช้งาน Quartus II 4.2 Web Edition โปรแกรมสำหรับออกแบบ CPLD/FPGA ตอนที่ 1 สำหรับคุณสมบัติของโปรแกรม Quartus II 4.2 ดังนี้

  • สำหรับออกแบบวงจรดิจิตอล โดยเขียนวงจรเป็นแบบบล็อกไอแกรม (Block Diagram File) , แผนผังวงจร (Schematic File) , ภาษาสำหรับอธิบายการทำงานของวงจร (Hardware Description language เช่น AHDL , VHDL ,Verilog HDL)
  • สนับสนุน CPLD Device เช่น MAX II และ CPLD MAX3000A , MAX7000AE , MAX7000B , MAX7000S
  • สนับสนุน FPGA Device เช่น Cyclone, Stratix , Stratix II , FLEX10KE , FLEX10K, FLEX10KA , ACEX , FLEX 6000
  • Performance ที่ได้จากการออกแบบและสังเคราะห์ด้วยโปรแกรม Quartus II จะดีกว่า สังเคราะห์ด้วยโปรแกรม MAX+PLUS II
  • มีคุณสมบัติ PowerGauge(tm) สามารถวิเคราะห์กำลังไฟฟ้า (Power Analysis) ของ CPLD/FPGA ที่ใช้ได้
  • สนับสนุนการออกแบบแบบ LogicLock(tm)
  • สนับสนุนการออกแบบแบบ System On a Programmable Chip (SOPC Builder)

การใช้งานโปรแกรม Quartus II 4.2 Web Edition
1. เรียกโปรแกรม Quartus II 4.2 Web Edition จาก Start Menu ดังรูปที่ 1

รูปที่ 1 เรียกโปรแกรม Quartus II 4.2 Web Edition จาก Start Menu
2.หลังจากนั้นจะปรากฏหน้าต่างของโปรแกรม Quartus II 4.2 Web Edition ขึ้นมาดังรูปที่ 2

รูปที่ 2 โปรแกรม Quartus II 4.2 Web Edition

3.สำหรับผู้ใช้ที่เคยใช้งานโปรแกรม MAX+PLUS II อาจจะคุ้นเคยกับคำสั่ง หรือเมนูของโปรแกรม MAX+ PLUS II เราสามารถกำหนดให้โปรแกรม Quartus II 4.2 Web Edition แสดงเมนูที่มีคำสั่งแบบเดียวกับ โปรแกรม MAX+PLUS II ได้ เพื่อให้ผู้ใช้ที่เคยใช้งานโปรแกรม MAX+PLUS II เริ่มต้นใช้งานโปรแกรม Quartus II 4.2 Web Edition ได้สะดวกยิ่งขึ้น โดยกดที่ปุ่ม Tools -> Customize จะปรากฏหน้าต่าง Customize ขึ้นมาดังรูปที่ 3 หากต้องการให้หน้าตาโปรแกรม Quartus II 4.2 Web Edition มีลักษณะคล้ายกับโปรแกรม MAX+Plus II ในช่อง Look & Feel เลือกที่ MAX+PLUS II และกดปุ่ม OK โปรแกรม Quartus II จะทำการปิดตัวเองโดยอัตโนมัติ เราจะต้องทำการเรียกโปรแกรม Quartus II ขึ้นมาใหม่จะได้ดังรูปที่ 4

รูปที่ 3 หน้าต่าง Customize

รูปที่ 4 โปรแกรม Quartus II ที่มีหน้าตาและเมนูคล้ายโปรแกรม MAX+PLUS II

4.สำหรับตัวอย่างการใช้งานโปรแกรม Quartus II ในบทความนี้จะกำหนดลักษณะหน้าตาโปรแกรมให้เหมือนกับโปรแกรม MAX+PLUS II เพื่อความง่ายในการเรียนรู้ เริ่มต้นการออกแบบวงจรดิจิตอลจะต้องกำหนดชื่อโปรเจ็กขึ้นมาก่อน โดยกดเลือกที่เมนู File -> New Project Wizard.. จะมีหน้าต่าง New Project Wizard ปรากฏขึ้นมาดังรูปที่ 5 ช่องที่ 1 ไดเร็คทรอรี่สำหรับเก็บไฟล์ต่างๆ ที่เราได้ออกแบบขึ้นและที่โปรแกรมสร้างขึ้นมา ช่องที่ 2 สำหรับระบุชื่อโปรเจ็ก และช่องที่ 3 สำหรับระบุชื่อ Top Level ในโปรเจ็กของเรา เมื่อระบุค่าต่างๆ ทุกช่องแล้วกดที่ปุ่ม Finish

รูปที่ 5 หน้าต่าง New Project Wizard
5.เลือกประเภทของไฟล์ที่ต้องการจะสร้างโดยกดเลือกที่เมนู File -> New จะปรากฏหน้าต่าง New ขึ้นมาดังรูปที่ 6 สำหรับในตัวอย่างนี้เป็นการออกแบบวงจรดิจิตอล โดยการเขียนแผนผังวงจรเพราะฉะนั้นกดเลือก Block Diagram/Schematic File หลังจากนั้นกดปุ่ม OK

รูปที่ 6 หน้าต่าง New

6.สำหรับวงจรตัวอย่างที่จะใช้แนะนำการใช้งานโปรแกรม Quartus II จะเป็นวงจร Decade Counter ดังรูปที่ 7

รูปที่ 7 วงจร Decade Counter
จากรูปที่ 7 เป็นวงจร Decade Counter ซึ่งมีอุปกรณ์ที่ใช้ได้แก่ 74168, 7448, INPUT, OUTPUT, VCC, GND โดยอุปกรณ์ต่างๆ เหล่านี้จะมาพร้อมกับโปรแกรม Quartus II ในรูปของไลบรารี ส่วนการนำอุปกรณ์ต่างๆ เหล่านี้มาใช้ให้ทำการดับเบิ้ลคลิกที่ Graphic Form ดังรูปที่ 8 และหลังจากนั้นจะมี Dialog Symbol ปรากฏขึ้นมาเพื่อให้เลือกอุปกรณ์ที่เราต้องการนำมาวางที่ Graphic Form โดยที่
- 74168 ใช้ชื่อ Symbol Name ว่า 74168
- 7448 ใช้ชื่อ Symbol Name ว่า 7448
- INPUT ใช้ชื่อ Symbol Name ว่า input
- OUTPUT ชื่อ Symbol Name ว่า output
- VCC ใช้ชื่อ Symbol Name ว่า vcc
- GND ใช้ชื่อ Symbol Name ว่า gnd

รูปที่ 8 การเรียกใช้ไลบรารี

รูปที่ 9 การเลือก Symbol จาก Library ของ MAX+PLUSE II

เมื่อทำการวางอุปกรณ์จนครบทุกตัวแล้ว ให้ทำการเชื่อมต่ออุปกรณ์ต่างๆเข้าด้วยกันโดยเลื่อน pointer ของเมาส์ไปที่ขาต่างๆ ของอุปกรณ์ คุณจะสังเกตได้ว่าขณะนี้ pointer ของเมาส์จะเปลี่ยนเป็นเครื่องหมาย + จากนั้นให้ทำการคลิกซ้ายค้างไว้แล้วลากเส้นไปต่อกับอินพุทหรือเอาท์พุทของอุปกรณ์ตัวอื่น และถ้าหากต้องการลบเส้นที่วาดไว้ ให้คลิกที่เส้นที่ต้องการลบซึ่งขณะนี้เส้นนั้นจะเปลี่ยนจากสีม่วงมาเป็นสีน้ำเงิน จากนั้นกดปุ่ม Delete บนคีย์บอร์ดเพื่อลบเส้นนั้นทิ้ง หลังจากเชื่อมต่ออุปกรณ์ต่างๆ จนครบทั้งหมดแล้วให้ทำการเปลี่ยนชื่อของขาอินพุทและเอาท์พุทต่างๆ หรือ PIN_NAME ของอุปกรณ์โดยการดับเบิ้ลคลิกที่ตัวอักษร PIN_NAME ที่ขาอินพุทและเอาท์พุทต่างๆ จะปรากกฏหน้าต่าง Pin Properties ปรากฏขึ้นมาดังรูปที่ 10 ซึ่งเราสามารถแก้ไขชื่อของสัญญาณได้ในช่อง Pin Name(s) และสามารถกำหนดสถานะเริ่มต้นเป็น VCC หรือ GND ให้แก่ขาสัญญาได้ โดยเลือกที่ช่อง Default value ทำการเปลี่ยนชื่อของขาสัญญาณ อินพุท/เอาท์พุท ต่างๆ ให้ตรงกับในรูปที่ 7 เมื่อวาด รูปวงจรและแก้ไขชื่อขาสัญญาณเรียบร้อยแล้ว ให้ทำการบันทึกวงจรที่สร้างขึ้นมาจากเมนู File / Save as จากนั้น Save ชื่อไฟล์เป็น Lab1.bdf และกดเลือกที่ช่อง Add file to current project ดังรูปที่ 11 แล้วกดที่ปุ่ม OK เพื่อบันทึก

รูปที่ 10 หน้าต่าง Pin Properties สำหรับแก้ชื่อขาสัญญาณ

รูปที่ 11 บันทึกเป็น File ชื่อ Lab1.bdf

7.หลังจากบันทึกไฟล์เรียบร้อยแล้ว ขั้นตอนต่อไปจะเป็นการระบุเบอร์ CPLD/FPGA ที่เราจะใช้งาน โดยกดเลือกที่เมนู Assignments -> Device.. จะปรากฏหน้าต่าง Settings ขึ้นมา กดเลือกที่หัวข้อ Device หลังจากนั้น ในช่อง Family เลือกตระกูลของ CPLD/FPGA และในช่อง Available devices จะเป็นการเลือกเบอร์ของ CPLD/FPGA ที่จะใช้งาน สำหรับในตัวอย่างนี้ตระกูล (Family) ให้เลือกเป็น MAX II และเบอร์ของอุปกรณ์เลือกเป็น EPM1270T144C5ES ดังรูปที่ 12 หลังจากนั้นกดที่ปุ่ม OK

รูปที่ 12 หน้าต่าง Settings สำหรับกำหนดเบอร์ของ CPLD/FPGA

8.ขั้นตอนต่อไปจะเป็นการคอมไพล์วงจรที่ได้ออกแบบขึ้นมา โดยเลื่อนเมาส์มากดเลือกที่เมนู Processing -> Start Compilation จะปรากฏหน้าต่าง Compiler Tool ดังรูปที่ 13

รูปที่ 13 หน้าต่าง Compiler Tool

เมื่อกระบวนการคอมไพล์เสร็จสิ้นจะปรากฏหน้าต่างรายงาน ERRORS และ WARNINGS จากการคอมไพล์ปรากฏขึ้นมาดังรูปที่ 14 ในกรณี ERRORS จะต้องทำการแก้ไข ERRORS ให้เสร็จสิ้นจึงจะสามารถทำขั้นตอนต่อไปได้

รูปที่ 14 หน้าต่างรายงานผลการคอมไพล

9.หลังจากนั้นจะเป็นการจำลองการทำงานของวงจรที่ได้ออกแบบขึ้น โดยเลือกที่เมนู Tools -> Simulator Tool จะปรากฏหน้าต่าง Simulator Tool ดังรูปที่ 15 สำหรับช่อง Simulation Mode ให้เลือกเป็น Timing สำหรับโหมดการจำลองการทำงานจะมี 2 โหมด คือ

  • Timing Mode : เป็นการจำลองการทำงานโดยคำนึงถึงตัวแปรทางด้านเวลาและคุณสมบัติต่างๆ ของ CPLD/FPGA การจำลองการทำงานในโหมดนี้ ผลลัพธ์ที่ได้จะมีค่าเวลาหน่วงเกิดขึ้น ตามชนิดของ CPLD/FPGA ที่ได้ระบุไว้
  • Functional Mode : เป็นการจำลองการทำงานของวงจรที่ออกแบบมา โดยไม่รวมตัวแปรทางด้านเวลาและคุณสมบัติต่างๆ ของ CPLD/FPGA เข้ามาประมวลผล การจำลองการทำงานในโหมดนี้ จะเป็นการตรวจสอบโค๊ดหรือวงจรที่ได้ออกแบบขึ้นเท่านั้น ว่าวงจรทำงานได้ถูกต้องหรือไม่

รูปที่ 15 หน้าต่าง Simulator Tool
หลังจากเลือกโหมดการจำลองการทำงานเป็น Timing แล้ว เลื่อนเมาส์มากดเลือกที่ปุ่ม Open เพื่อเปิดไฟล์ Vector Waveform File สำหรับบันทึกผลการจำลองการทำงาน

10.หลังจากนั้นจะมีหน้าต่าง Waveform ปรากฏขึ้นมา ดังรูปที่ 16 เราจะต้องทำการโหลด โหนดทางอินพุทขึ้นมา เพื่อกำหนดลักษณะสัญญาณอินพุทให้แก่วงจรที่เราได้ออกแบบขึ้น และผลลัพธ์ที่ได้จากการจำลองการทำงานจะแสดงออกมาที่ โหนดทางเอาท์พุท การโหลดโหนดอินพุท/เอาท์พุท โดยเลื่อนเมาส์มากดที่เมนู Edit -> Insert Node or Bus.. จะมีหน้าต่าง Insert Node or Bus ปรากฏขึ้นมาดังรูปที่ 17

รูปที่ 16 หน้าต่าง Vector Waveform File สำหรับแสดงผลการจำลองการทำงาน

รูปที่ 17 หน้าต่าง Insert Node or Bus

11.หลังจากนั้นกดที่ปุ่ม Node Finder เพื่อค้นหาโหนดต่างๆ จะปรากฏหน้าต่าง Node Finder ดังรูปที่ 18 เลื่อนเมาส์มากดที่ปุ่ม List จะปรากฏรายชื่อโหนดอินพุท/เอาท์พุทต่างๆ ปรากฏขึ้นมาที่ Listbox ทางด้านซ้าย จากนั้นเลือกโหนดที่เป็นอินพุท และเอาท์พุททั้งหมดที่อยู่ใน Listbox ทางด้านซ้าย โดยการดับเบิ้ลคลิกทุกๆ รายการที่อยู่ในช่องนี้ คุณจะพบว่าในรายการต่างๆ จะเข้าไปอยู่ใน Listbox ทางด้านขวา หลังจากการดับเบิลคลิกดังรูปที่ 19

รูปที่ 18 หน้าต่าง Node Finder

รูปที่ 19 ดับเบิ้ลคลิกเพื่อเลือกโหนดอินพุท/เอาท์พุทต่างๆ

เมื่อเลือกโหนดอินพุท/เอาท์พุทต่างๆ เรียบร้อยแล้ว กดที่ปุ่ม OK หลังจากนั้นจะกลับมาที่หน้าต่าง Insert Node or Bus อีกครั้งหนึ่ง และกดที่ปุ่ม OK

12.หลังจากนั้นจะได้ผลลัพธ์ดังรูปที่ 20 ลำดับต่อไปกำหนดระยะเวลาในการจำลองการทำงานโดยเลือกที่เมนู Edit -> End Time.. จะปรากฏหน้าต่าง End Time ปรากฏขึ้นมาดังรูปที่ 21 ระบุเวลาในการจำลองการทำงานเป็น 2.0 uS และระบุค่าของ Grid โดยกดเลือกที่เมนู Edit -> Grid Size... จะปรากฏหน้าต่าง Grid Size ดังรูปที่ 22 ระบุค่า Period เท่ากับ 20 nS จะทำให้ได้ตาราง 1 ช่อง เท่ากับ 10 nS

รูปที่ 20 หน้าต่าง Waveform สำหรับจำลองการทำงาน

รูปที่ 21 หน้าต่าง End Time

รูปที่ 22 หน้าต่าง Grid Size
13.ขั้นตอนต่อไปเป็นการสร้างสัญญาณให้แก่โหนดทางอินพุทต่างๆ เครื่องมือที่ใช้ในการสร้างลักษณะสัญญาณต่างๆ จะอยู่ทางซ้ายมือ ซึ่งมีหน้าที่ต่างๆ ดังนี้

Selection Tool Weak Unknown
Text Tool Weak Low
Waveform Editing Tool Weak High
Zoom Tool Don't Care
Full Screen Invert
Find Count Value
Replace Overwrite Clock
Uninitialized Arbitrary Value
Forcing Unknown Random Value
Forcing Low Snap to grid
Forcing High Sort
High Impedance  

สำหรับวงจรดังรูปที่ 7 เป็นวงจร Decade Counter จะทำการนับเมื่อมีสัญญาณ Pulse เข้ามาที่ขา CLK และในกรณีสัญญาณ UP_DOWN มีสถานะเป็นลอจิก "1" จะเป็นการกำหนดให้ทำการนับขึ้น และหากเป็นลอจิก "0" จะเป็นการกำหนดให้เป็นการนับลง เพราะฉะนั้นเราจะต้องกำหนดเงื่อนไขของสัญญาณโหนดอินพุท CLK และอินพุท UP_DOWN ให้สอดคล้องกับสถาวะดังกล่าว โดยเริ่มต้นจากการกำหนดสัญญาณให้แก่อินพุท CLK โดยเลื่อนเมาส์มากดที่อินพุท CLK จะปรากฏแถบสีฟ้าปรากฏขึ้นมา หลังจากนั้นเลื่อนเมาส์มากดที่ปุ่ม จะปรากฏหน้าต่าง CLOCK ขึ้นมาดังรูปที่ 23

รูปที่ 23 หน้าต่าง CLOCK สำหรับสัญญาณอินพุท CLOCK
จากรูปที่ 23 ช่อง Period สำหรับกำหนดคาบเวลาของสัญญาณ กำหนดเป็น 20.0 ns หมายถึง 1 รูปคลื่นมีคาบเวลาเท่ากับ 20.0 nS ช่อง Phase สำหรับกำหนดความต่างเฟส กำหนดเป็น 0.0 nS และช่อง Duty Cycle เป็นการกำหนด Duty Cycle ของสัญญาณ CLK กำหนดเป็น 50 และกดที่ปุ่ม OK หลังจากกำหนดลักษณะสัญญาณให้แก่สัญญาณ CLK เรียบร้อยแล้ว ต่อไปจะทำการกำหนดลักษณะสัญญาณให้แก่ อินพุท UP_DOWN โดยการเลื่อนเมาส์มากดที่ UP_DOWN จะปรากฏแถบสีฟ้าปรากฏขึ้นมา หลังจากนั้นเลื่อนเมาส์มากดที่ปุ่ม จะปรากฏหน้าต่าง CLOCK ขึ้นมาดังรูปที่ 24 ช่อง Period สำหรับกำหนดคาบเวลาของสัญญาณ กำหนดเป็น 2.0 us หมายถึง 1 รูปคลื่นมีคาบเวลาเท่ากับ 2.0 uS (กำหนดให้เท่ากับค่า End Time เพราะจะทำการทดสอบนับขึ้นและนับลงในช่วงเวลา 2 uS) ช่อง Phase สำหรับกำหนดความต่างเฟส กำหนดเป็น 0.0 nS และช่อง Duty Cycle เป็นการกำหนด Duty Cycle ของสัญญาณ CLK กำหนดเป็น 50 (หมายถึงกำหนดให้นับขึ้นเท่ากับ 1 uS และกำหนดให้ทำการนับลง 1 uS) และกดที่ปุ่ม OK หลังจากนั้นเราจะเห็นว่าสัญญาณ UP_DOWN จะเป็นลอจิก "0" ตั้งแต่ 0 - 1.0 uS และเป็นลอจิก "1" ตั้งแต่ 1.0 uS - 2.0 uS ซึ่งจะเป็นการนับลงก่อน 1 uS และหลังจากนั้นจะนับขึ้นอีก 1 uS จะได้ลักษณะสัญญาณของอินพุท CLOCK และอินพุท UP_DOWN ดังรูปที่ 25 เมื่อกำหนดลักษณะสัญญาณทางอินพุทเรียบร้อยแล้วทำการบันทึก โดยเลือกที่ File -> Save กำหนดชื่อเป็น Lab1 และเลือกชนิดของไฟล์เป็นแบบ Vector Waveform File ดังรูปที่ 26

รูปที่ 24 หน้าต่าง CLOCK สำหรับอินพุท UP_DOWN

รูปที่ 25 ลักษณะสัญญาณของอินพุท CLOCK และ UP_DOWN

รูปที่ 26 หน้าต่าง Save

14.หลังจากบันทึกเป็น Vector Waveform File เรียบร้อยแล้ว ทำการจำลองการทำงาน โดยเลือกที่เมนู Processing -> Start Simulation จะปรากฏหน้าต่าง Simulation Tool กำลังทำกระบวนการจำลองการทำงาน และเมื่อจำลองการทำงานเรียบร้อยแล้วจะมีหน้าต่าง รายงานผลว่ามี ERRORS หรือ WARNINGS หรือไม่ หากไม่มีสามารถดูผลการจำลองการทำงานได้เลย จะได้ผลลัพธ์ดังรูปที่ 27

 

รูปที่ 27 ผลการจำลองการทำงาน

15.หลังจากจำลองการทำงานของวงจรเรียบร้อยแล้ว เราสามารถวิเคราะห์หาความถี่สูงสุดที่วงจรสามารถตอบสนองได้ โดยเลือกที่เมนู Tools -> Timing Analyzer Tool จะปรากฏหน้าต่าง Timing Analyzer Tool ดังรูปที่ 28 หลังจากนั้นกดที่ปุ่ม Start เพื่อเริ่มประมวลผล ความถี่สูงสุดที่สามารถตอบสนองได้สามารถดูได้จากช่อง Frequency จากรูปที่ 28 ความถี่สูงสุดที่สามารถตอบสนองได้คือ 231.75 MHZ

รูปที่ 28 หน้าต่าง Timing Analyzer Tool

16.ขั้นตอนต่อไปจะเป็นการกำหนดตำแหน่งขาสัญญาณของวงจรที่ได้ออกแบบขึ้น ให้ตรงกับตำแหน่งขาของ CPLD/FPGA ที่ใช้งานจริง โดยเลือกที่เมนู Assignment -> Timing Closure Floorplan จะปรากฏหน้าต่างดังรูปที่ 29 ซึ่งจะเป็นมุมมองแบบ Field View ซึ่งเป็นมุมมองที่ทำการแก้ไขตำแน่งขาได้ค่อนข้างยาก ทำการเปลี่ยนมุมมองใหม่ โดยกดเลือกที่เมนู View -> Package Top จะได้ดังรูปที่ 30

รูปที่ 29 หน้าต่าง Timing Closure Floorplan มุมมองแบบ Field View

รูปที่ 30 หน้าต่าง Timing Closure Floorplan มุมมองแบบ Package Top

17.หลังจากนั้นกดเลือกที่เมนู Assignment -> Back-Annotate Assignment.. จะปรากฏหน้าต่าง Back-Annotate Assignment ปรากฏขึ้นมาดังรูปที่ 31 กดเลือกที่ช่อง Pin & device assignment และกดที่ปุ่ม OK

รูปที่ 31 หน้าต่าง Back-Annotate Assignment

18.ลำดับต่อไปกดเลือกที่เมนู Assignment -> Pins จะปรากฏหน้าต่าง Assignment Editor ดังรูปที่ 32 สำหรับช่อง Category เลือกที่ Pin ทำการแก้ไขขาของสัญญาณต่างๆ โดยการดับเบิ้ลคลิกที่ช่อง Location ของสัญญาณต่างๆ และเลือกตำแหน่งขาต่างๆดังตารางที่ 1 หลังจากกำหนดตำแหน่งขาต่างๆ จนครบหมดแล้ว เลือกที่เมนู File -> Save เพื่อบันทึกข้อมูลที่ได้ทำการแก้ไขและและเลือกที่เมนู Processing -> Start Compilation

ตารางที่ 1

Signal Location Signal Location
CLK PIN_18 SEG_G PIN_24
UP_DOWN PIN_58 CM1 PIN_42
SEG_A PIN_32 CM2 PIN_41
SEG_B PIN_31 CM3 PIN_40
SEG_C PIN_30 CM4 PIN_39
SEG_D PIN_29 CM5 PIN_38
SEG_E PIN_28 CM6 PIN_37
SEG_F PIN_27    

 

รูปที่ 32 หน้าต่าง Assignment Editor

19.หลังจากนั้นบันทึกตำแหน่งขาที่ทำการแก้ไข โดยเลือกที่เมนู File -> Save และทำการคอมไพล์วงจรที่ออกแบบมาใหม่อีกครั้ง โดยเลือกที่เมนู Processing -> Start Compilation

20.เมื่อคอมไพล์เสร็จเรียบร้อยแล้ว ทำการโปรแกรมลงบอร์ดทดลอง POWER MAXII - EX1 เพื่อทดสอบการทำงานจริง เลือกที่เมนู Tools -> Programmer จะปรากฎหน้าต่าง Programmer ขึ้นมา ในกรณีที่ยังไม่เคยเลือก Hardware สำหรับดาว์นโหลดให้ทำการกดเลือกที่ปุ่ม Hardware Setup.. จะมีหน้าต่าง Hardware Setup ปรากฏขึ้นมาดังรูปที่ 33 ในช่อง Currently Selected Hardware ให้เลือก ByteBlasterMV[LPT1] หลังจากนั้นกดที่ปุ่ม Close

รูปที่ 33 หน้าต่าง Hardware Setup
หลังจากนั้นทำการเลือกหน่วยความจำสำหรับโปรแกรมซึ่ง CPLD ในตระกูล MAX II จะมีหน่วยความจำ 2 ชุด คือ 1.หน่วยความจำสำหรับเก็บข้อมูลที่จะให้ทำงานเป็นวงจรดิจิตอลที่เราได้ออกแบบไว้หรือที่เรียกว่า Configuration Flash Memory (CFM) 2.หน่วยความจำข้อมูลแบบเฟลชที่เรียกว่า User Flash Memory (CFM) ทำการกดเลือกดังรูปที่ 34 หลังจากเชื่อมต่อสายดาว์นโหลด ByteBlasterMV เข้ากับบอร์ด POWER MAXII - EX1 จ่ายไฟเลี้ยงให้แก่บอร์ดทดลอง และกดเลือกที่ปุ่ม Start เพื่อเป็นการโปรแกรมข้อมูลลงบอร์ด

รูปที่ 34 หน้าต่างสำหรับ Program

เมื่อโปรแกรมวงจรลงในบอร์ดทดลองเรียบร้อยแล้วสังเกตุการทำงานของวงจรจะเห็นว่าขณะนี้ 7 Segment หลักสุดท้ายจะสว่างตลอดเวลาเพราะว่าเรานำความถี่จาก Module Oscilator ป้อนเข้าวงจรนับที่เราได้ออกแบบไว้ ซึ่งความถี่ของ Module Oscillator มีค่าเท่ากับ 1 MHz แสดงว่าขณะนี้วงจรของเรากำลังนับด้วยความเร็ว 1 ล้านครั้งต่อวินาทีจึงทำให้เห็นว่า 7 Segment สว่างตลอดเวลา หากต้องการให้เห็นการนับช้าลงกว่านี้ เพื่อให้สังเกตุการนับได้ เราจะต้องทำการหารความถี่ 1 MHz ลงอีกดังรูปที่ 35 ความถี่ที่ส่งให้แก่วงจรนับของเราจะอยู่ที่ประมาณ 1 Hz ซึ่งสามารถสังเกตุเห็นการเปลี่ยนแปลงของ 7 Segment ได้

รูปที่ 35 วงจร Decade Counter ที่เพิ่มวงจรหารความถี่เข้าไปแล้ว