วันพุธที่ 27 พฤษภาคม พ.ศ. 2558

Keypad 4*4 FPGA

การทดลองที่ 5

Keypad 4*4  FPGA 

อุปกรณ์


1. บอร์ด Altena Cyclone III                                                                                                        บอร์ด
2. สายดาวน์โหลด ByteBlaster II Cable หรือ สายดาวน์โหลดUSB Blaster Cable                                ชุด
3. เครื่องคอมพิวเตอร์(Quatus II web edition)                                                                           
4. ออสซิลโลสโคป                                                                                                                      เครื่อง
5. Keypad 4*4                                                                                                                                      1 ชุด

โจทย์


 สร้างวงจรดิจิทัลเพื่ออ่านค่าจาก 4x4 keypad แล้วแสดงผลด้วย LEDs 

Source Code VHDL

โค๊ด  com_fsm_keypad 



ผลการทดลอง




วันอาทิตย์ที่ 17 พฤษภาคม พ.ศ. 2558

LAB 16X2 LCD screen

การทดลองที่ 4


16*2 LCD screen


อุปกรณ์

1. บอร์ด Altena Cyclone III                                                                                                        บอร์ด
2. สายดาวน์โหลด ByteBlaster II Cable หรือ สายดาวน์โหลดUSB Blaster Cable                                ชุด
3. เครื่องคอมพิวเตอร์(Quatus II web edition)                                                                           
4. ออสซิลโลสโคป                                                                                                                      1เครื่อง

โจทย์



ใช้ IP core สำหรับ 16x2 LCD ที่มีอยู่บนบอร์ด FPGA เพื่อแสดงข้อความ 
"Hello World!"


Source Code VHDL



โค๊ด  lcd16x2_ctrl



โค๊ด  LCD 




ผลการทดลอง




LAB UART [temp]


การทดลองที่ 6


Serial UART

อุปกรณ์

1. บอร์ด Altena Cyclone III                                                                                                        บอร์ด
2. สายดาวน์โหลด ByteBlaster II Cable หรือ สายดาวน์โหลดUSB Blaster Cable                                ชุด
3. เครื่องคอมพิวเตอร์(Quatus II web edition)                                                                           
4. ออสซิลโลสโคป                                                                                                                      1เครื่อง
5. โปรแกรม Putty       
          

โจทย์



สร้างวงจรดิจิทัลเพื่อส่งตัวอักษร 'a' ผ่าน UART ไปยังคอมพิวเตอร์ เมื่อกดปุ่มแล้วปล่อยในแต่ละครั้ง โดยใช้ค่า baudrate เท่ากับ 9600 (เน้นส่งข้อมูลไบต์จาก FPGA ไปยังคอมพิวเตอร์เท่านั้น ยังไม่ต้องรับข้อมูล)


Source Code 


โค๊ด  component_debounce



โค๊ด uart_lib



โค๊ด UART_comp



โค๊ด TB_UART_comp



โค๊ด ClkUnit



ผลการทดลอง 


ออก A อย่างเดียว

 
 
 ไล่รหัส ASCII


วันเสาร์ที่ 21 กุมภาพันธ์ พ.ศ. 2558

LAB 3 component

การทดลองที่ 3

 component

อุปกรณ์

1. บอร์ด xilinx                                                                                                                             บอร์ด
2. สายดาวน์โหลด ByteBlaster II Cable หรือ สายดาวน์โหลดUSB Blaster Cable                ชุด
3. เครื่องคอมพิวเตอร์(Quatus II web edition)                                                                           1ชุด
4. ออสซิลโลสโคป                                                                                                                       1เครื่อง
5. WS2812 RGB LED                                                                                                               1ดวง

โจทย์


ให้นศ.นำวงจรเดิม (WS2812 RGB LED) ที่ได้ออกแบบไว้ด้วยภาษา VHDL มาแก้ไข โดยแบ่งวงจรเดิม (design partitioning) ในระดับ top-level design ให้มีหรือประกอบด้วย component อย่างน้อย 3 ส่วน และออกแบบแต่ละส่วน ให้สามารถนำกลับมาใช้ได้อีก (design for reuse) และเมื่อนำมาร่วมกัน ยังสามารถทำงานได้ตามเดิม อธิบายการทำงานของแต่ละส่วนว่า มีอินเทอร์เฟส (interface) หลักการทำงาน และใช้เพื่อวัตถุประสงค์ในวงจร + การจำลองการทำงาน (Simulation) ของแต่ละส่วนด้วย VHDL Testbench (Unit Testing) และใช้ VHDL testbench เดิมทดสอบระบบรวม (Integration Testing)

โค๊ด component debounce



โค๊ด testbench ของ component debounce




โค๊ด component data



โค๊ด testbench ของ component data



โค๊ด component fsm



โค๊ด testbench ของ component fsm



โค๊ดรวม RGB component



โค๊ด testbench ของ RGB component



ผลการทดลอง















วันจันทร์ที่ 26 มกราคม พ.ศ. 2558

[Warm-up] LAB 2

Warm Up LAB
2) จงออกแบบวงจรดิจิลัทโดยใช้ภาษา VHDL สำหรับนำไปสร้างเป็นวงจรในชิป FPGA โดยใช้บอร์ดที่มีอยู่ใน    ห้องแล็ป
       2.1) วงจรดิจิทัลมี I/O ดังนี้
           - CLK (input) มีความถี่ 50MHz ใช้สำหรับกำหนดจังหวะการทำงานของวงจรทั้งหมด (เป็นการ ออกแบบ            วงจร ดิจิทัลแบบ Synchronous Design)
           - RST_B (input) เป็นอินพุตสำหรับใช้รีเซตแบบ Asynchronous สำหรับการทำงานของวงจรโดยรวม (ทำงาน แบบ Active-Low) ซึ่งได้จากวงจรปุ่มกด (Push Button)
          - PB (input) เป็นอินพุตจากปุ่มกด 1 ปุ่ม ทำงานแบบ Active-low เพื่อใช้ในการเปลี่ยนสีของ WS2812 RGB  LED จำนวน 1 ดวง
          - DATA (output) เป็นเอาต์พุตสำหรับนำไปควบคุมการทำงานของ WS2812 RGB LED เพียง 1 ดวง ซึ่งเป็น สัญญาณตามข้อกำหนดของชิป WS2812 เพื่อส่งข้อมูลจำนวน 24 บิต
      2.2) พฤติกรรมการทำงานเป็นดังนี้
           - เมื่อเริ่มต้นหรือกดปุ่มรีเซต (RST_B) จะทำให้ค่าสีเป็น 0x000000 (24 บิต) และส่งออกไปยัง WS2812 RGB LED หนึ่งครั้ง
           - เมื่อมีการกดปุ่ม PB แล้วปล่อยในแต่ละครั้ง จะมีการเปลี่ยนค่าสี 24 บิต แล้วส่งออกไปยัง RGB LED ใหม่หนึ่งครั้ง ตามลำดับดังนี้   0x000000 -> 0x0000FF -> 0x00FF00 -> 0xFF0000 แล้ววนซ้ำ

    2.3) แนวทางการออกแบบและทดสอบ
            - ออกแบบวงจรโดยใช้ภาษา VHDL
            - เขียน VHDL Testbench เพื่อทดสอบการทำงาน และจำลองการทำงาน
            - ทดสอบการทำงานในบอร์ด FPGA แล้ววัดสัญญาณโดยใช้ออสซิลโลสโคป
               (ยังไม่ต้องต่อวงจร RGB LED จริง)
            - บันทึกผลและเขียนรายงานการทดลอง


อุปกรณ์

1. บอร์ด Altera FPGA (WARRIOR CYCLONE3 DEV) ชิป EP3C10E144C8                     1 บอร์ด
2. สายดาวน์โหลด ByteBlaster II Cable หรือ สายดาวน์โหลดUSB Blaster Cable                1 ชุด
3. เครื่องคอมพิวเตอร์(Quatus II web edition)                                                                           1 ชุด
4. ออสซิลโลสโคป                                                                                                                   1 เครื่อง
5. WS2812 RGB LED                                                                                                            1 ดวง

โค๊ด VHDL 



โค๊ด VHDL Testbench




Compilation Report 


RTL Viewer

RTL report.qsf

ผลการทดสอบวงจรด้วยโปรแกรม Modelsim