รายงานความก้าวหน้ามินิโปรเจคครั้งที่
2
วัตถุประสงค์ที่ได้ดำเนินการไปแล้ว
1.ทดลองใช้ plasma CPU บน Xilinx ISE WebPACK
การทำงานของ
plasma cpu โดยจะมีหลายส่วนประกอบเพื่อนำมารวมกันกลายเป็นตัว
cpu ที่เราใช้งานโดยประกอบไปด้วยหลายไฟล์มาประกอบกันกลายเป็นตัว
plasma โดยส่วนที่นำมาประกอบกันจะได้อย่างรูปนี้
Plasma_3e.vhd
ในส่วนนี้จะเป็นการทำงานนำส่วนนี้เป็นส่วนประกอบของตัวอื่นมาทำการเชื่อมต่อกันโดยจะมีการ
reset การทำงานของ clk โดยถ้าขา reset
เป็น 1 จะทำให้ค่า clk_regเป็น 0
Plasma.vhd
ในส่วนของไฟล์นี้นั้นจะเป็นการทำงานของตัว
plasma core โดยมี memory เพื่อช่วยในการทำงานด้วยโดยการทำงานจะเป็นการ
port mapมาจากไฟล์ milte_cpu ในส่วนของการคำนวณในการทำงานคำสั่งๆต่างๆที่ทำใส่
cpu และมีการใช้ ram จากไฟล์ram_xilinx
และมีการใช้คำสั่งใช้ Ethernet ได้และมีการเชื่อมต่อผ่าน
uart
Mlite_cpu.vhd
จะเป็นส่วนที่ไว้บอกเส้นทางของข้อมูลว่าส่วนประกอบอันไหนเชื่อมโยงกะส่วนประกอบอันไหนลีการกำหนดคำสั่งการทำงานต่างๆของแต่ละส่วนประกอบด้วยโดยจะมีการกำหนดการทำงานของ
pipeline ซึ่งเดิมทีละจะทำทีละ
2 คำสั่งมีการสามารถเปลี่ยนเป็น3 ได้แต่ว่าจะมีสัญญาณบางสัญญาณที่เกิดการหน่วงเวลาไป
1 cycle ซึ่งได้แก่ a_bus, b_bus,
alu/shift/mult_func, c_source, and rd_index
Pc_next.vhd
เป็นส่วนที่ชี้ที่อยู่ของคำสั่งถัดไปให้ไปทำโดยจะไปส่งให้ตัวส่วนที่เป็น
mem_ctrl
Mem_ctrl.vhd
เป็นส่วนไว้เก็บค่าที่อยู่ของคำสั่งที่ได้รับมาจากตัว
program counter โดยสามารถมีการ
pause ไว้ได้โดยจะทำงานคำสั่งเดิมซ้ำลงไปละถ้ามีการ reset
ก็จะให้เป็น 0 เลย ถ้าไม่มีอะไรก็ส่ง opcode
ต่อไปที่ control.vhd
Control.vhd
เป็นส่วนที่เอาส่วน
opcode มาจำแนกเป็นการใช้งานคำสั่งต่างๆขึ้นอยู่กับว่ามี
opcode อะไรก็จะให้ทำงานตามนั้นโดยจะเหมือนกับส่วนควบคุมพฤติกรรมการทำงานนั่นเอง
Reg_bank.vhd
เป็นส่วนที่ไว้เก็บตัว
register และมีการรับค่าเข้ามาเพื่อดูว่า
register ที่ต้องการใช้เป็นตัวไหนละมีการเก็บเป็นค่า address
เอาไว้โดยถ้าจะต้องการใช้ก็บอกaddress มาจะสามารถเขียนข้อมูลลงไปหรืออ่านข้อมูล
ทำหน้าที่เหมือน RAM
Bus_mux.vhd
เป็นส่วนไว้ทำการรวมสัญญาณที่มาจากต่างส่วนประกอบมาทำการรวมกันให้สามารถทำงานได้อย่างถูกต้อง
Alu.vhd
เป็นส่วนที่ใช้คำนวณทางคณิตศาสตร์
Shifter.vhd
เป็นส่วนที่ใช้ทำการเลื่อนบิตข้อมูล
Mult.vhd
เป็นส่วนที่ไว้ใช้คำนวณการคูณการหาร
Pipeline.vhd
เป็นส่วนที่ควบคุมการทำงานที่พร้อมกัน
การทดลอง
ได้ทำการโหลดไฟล์ที่เป็น
Source Code มาจากเว็บไซต์
OpenCores แล้วนำทำการทดลองในโปรแกรม XillinxISE
Design 14.7 โดยได้ทำการสร้างโปรเจคใหม่ละทำการ import ไฟล์ใส่เข้าไปเรียบร้อยละตอนแรกมันจะเรียกถามหาไฟล์ Ram_image ให้ใส่ไฟล์ ram_xilinx ลงไปแทนทำให้สามารถทำงานได้เหมือนกันแต่ว่าถึงจะคอมไพล์ผ่านแต่ว่าติด
warning เยอะ
ภาพตอนเสร็จสิ้นการคอมไพล์
-จากนั้นทำการติดตั้งโปรแกรมและเข้าโปรแกรม
ไปที่ tool>board>board manager หาคำว่า FPGArduino และทำการติดตั้ง
-จากนั้นทำการตั้งค่าตามรูปข้างใต้
-เขียนโค้ดทดลองเข้าไปในโปรแกรมและ
compile
จากรูปจะเห็นมีชื่อบอร์ด FPGA อยู่
รูปภาพการทดลอง
ผลการเรียนรู้ที่ได้รับ
-ได้เรียนรู้วิธีการทำงาน
รวมไปถึงโครงสร้าง block diagram ภายใน Plasma CPU
-ได้ศึกษาการทำงานของบอร์ด Mojo
v3 (Xilinx Spartan-6) เพื่อนำไปประยุกต์ใช้กับตัว Plasma
CPU
ปัญหาหรืออุปสรรคและการแก้ไข
-เวลาทดลองเขียนโค้ดจะเกิดจุด
bug หรือ error
ในการ compile
วิธีการแก้ไข
: หาจุดที่ผิดและเขียนโค้ดลองดูใหม่อีกครั้งหรือหาข้อมูลมาควบคู่การเขียนโค้ดไปด้วย
-โปรแกรมลงบอร์ดไม่เข้าหรือบอร์ดไม่ได้รับโค้ดจากคอมพิวเตอร์ของเรา
วิธีการแก้ไข
: ทำการแก้ชื่อบอร์ด รุ่นต่างๆ
และทำการลงไดรเวอร์ของบอร์ดนั้นๆหรือหาโปรแกรมที่สามารถใช้เชื่อม หิ
ของบอร์ดเข้าที่คอมพิวเตอร์ได้ อย่างเช่น โปรแกรม Zadig
ไม่มีความคิดเห็น:
แสดงความคิดเห็น