วันเสาร์ที่ 8 พฤศจิกายน พ.ศ. 2557

32 – Bit Binary Counter

วัตถุประสงค์ในการทดลอง
     1. ฝึกการเขียนโค้ดในการออกแบบวงจรแบบนับขนาด 32 bit
     2. เรียนรู้และฝึกทักษะในการเขียนภาษา VHDL
     3. ฝึกการใช้ Altera Quartus II Web Edition เพื่อประยุกต์การใช้งานกับบอร์ด FPGA อย่างถูกต้อง

อุปกรณ์และซอฟต์แวร์ที่ใช้ในการทดลอง
     1. Altera FPGA Board (WARRIOR CYCLONE3 DEV)
     2. สายดาวน์โหลด ByteBlaster II และ USB Blaster
     3. โปรแกรม Altera Quartus II Web Edition (version 11.1 ขึ้นไป)

ขั้นตอนการทดลอง
     1. สร้างโปรเจคสำหรับการทดลอง โดยทำการเลือก
         - เลือกชิปที่ตรงกับบอร์ด FPGA เป็น EP3C10E144C8
         - Device Family ตระกูล Cyclone III
         - Design synthesis เลือก ModelSim-Altera สำหรับเครื่องมือการจำลองการทำงาน (Simulation) โดยใช้ภาษา VHDL
     2. ทำการเขียนโค้ด ภาษา VHDL สำหรับ 32 – Bit Binary Counter โดยโค้ดที่ได้เป็นดังนี้

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity counter is
Port ( CLK : in STD_LOGIC;
OUTPUT : out STD_LOGIC_VECTOR (31 downto 0));
end counter;
architecture Behavioral of counter is
signal counter : STD_LOGIC_VECTOR(31 downto 0) := (others => '0');
begin
OUTPUT <= counter;
count_process: process(CLK)
begin
if rising_edge(CLK) then
counter <= counter + 1;
end if;
end process;
end Behavioral;

     3. ทำการ Analysis & Synthetic เพื่อวิเคราะห์และสังเคราะห์วงจรดิจิทัลจากโค้ด VHDL
     4. กำหนดหมายเลขขาอินพุต-เอาต์พุตสำหรับวงจร โดยใช้คำสั่ง Pin Planner


           1.) เพิ่มชื่อสัญญาณ LCD_E ที่ขา PIN_54 และกำหนดให้เป็น As output, driving GND โดย ขา 54 ต่ออยู่กับสัญญาณ LCD_E ที่เป็นตัวควบคุมการทำงานของ LEDs บนบอร์ดทดลอง FPGA ที่ใช้
           2.) กำหนดอินพุต CLK ความถี่ 50MHz (ได้จากวงจรสร้างความถี่บนบอร์ด FPGA)
           3.) กำหนดขาอินพุท LED(7:0) ที่ต่อกับ LED บนบอร์ด FPGA โดยให้แสดงสถานะลอจิกของตัวนับ 8 บิต นับจากซ้ายสุด (บิตที่ 31..24)

      5. ทำการ Fitter และ Assembler


      6. ใช้คำสั่ง Programmer เพื่อทำการรันโค้ดที่ได้บนวงจร FPGA Board


ผลการทดลอง




ไม่มีความคิดเห็น:

แสดงความคิดเห็น