laporan 7'segment
Post on 02-Feb-2016
138 Views
Preview:
DESCRIPTION
TRANSCRIPT
LAPORAN PROJECTRANGKAIAN KOMBINASIONAL (Seven Segment)
TUJUAN :
Mahasiswa mampu menggunakan komponen seven segment dengan SPARTAN melalui bahasa VHDL.
Mahasiswa dapat menampilkan nilai masukan keluaran pada 7’segmen dalam SPARTAN.
DASAR TEORI :
Pada percobaan ini akan mempelajari beberapa rangkaian kombinasional yaitu BCD to 7’segmen. Rangkaian BCD to 7’segmen adalah rangkaian kombinasional yang mengkodekan bilangan biner menjadi bilangan desimal, selanjutnya bilangan tersebut di konfigurasi menjadi tampilan seven segmen. Konfigurasi seven segmen pada board spartan 3 ditunjukan pada gambar 1.
Gambar 1. Konfigurasi seven segmen pada board spartan3
Terdapat 4 buah sevensegmen yang disusun secara pararel dengan data a-g dan dot di rangkai menjadi satu. Sedangkan kendali tampilan di atur melalu pin AN di setiap segmen.
PERALATAN :
1. Modul Spartan III2. ISE Project Manager 3. iMPACT4. Kabel Downloader5. Kabel Power6. Buku Panduan Praktikum 6
ACHMAD RAHMAN MAWARDI - 2210141045
LANGKAH PERCOBAAN :
1. Buka softwere ISE project navigator dan buat sebuah project, dengan ketentuan sebagai berikut :
2. Setelah itu buat suatu “VHDL Modul” dengan nama “bedaplustop” dan dengan architecture name “Behavioral”, dengan ketentuan entity sebagai berikut :
ACHMAD RAHMAN MAWARDI - 2210141045
ACHMAD RAHMAN MAWARDI - 2210141045
3. Setelah masukan code program dibawah ini :
123456789011121314151617181920212223242526272829303132333435363738394041424344
library IEEE;use IEEE.STD_LOGIC_1164.ALL;
entity bedaplustop isPort ( mclk : in STD_LOGIC;
btn : in STD_LOGIC;sw : in STD_LOGIC_VECTOR (3 downto 0);a_to_g : out STD_LOGIC_VECTOR (6 downto 0);an : out STD_LOGIC_VECTOR (3 downto 0);
dp : out STD_LOGIC);end bedaplustop;
architecture Behavioral of bedaplustop iscomponent bedaplus isPort ( x : in STD_LOGIC_VECTOR (15 downto 0);
clk : in STD_LOGIC;clr : in STD_LOGIC;a_to_g : out STD_LOGIC_VECTOR (6 downto 0);an : out STD_LOGIC_VECTOR (3 downto 0);dp : out STD_LOGIC);
end component;signal x: STD_LOGIC_VECTOR (15 downto 0);beginwith sw select
x(15 downto 0)<= x"0100" when "0000", x"0201" when "0001", x"0302" when "0010", x"0403" when "0011", x"0504" when "0100", x"0605" when "0101", x"0706" when "0110", x"0807" when "0111", x"0908" when "1000", x"1009" when "1001", x"1110" when "1010", x"1211" when "1011", x"1312" when "1100", x"1413" when "1101", x"1514" when "1110", x"1615" when others;
x1 : bedaplus port map(x=>x, clk=>mclk, clr=>btn, a_to_g=>a_to_g,an=>an, dp=>dp);end Behavioral;
ACHMAD RAHMAN MAWARDI - 2210141045
4. Kemudian buat baru lagi suatu “VHDL Modul” dengan nama “bedaplus” dan dengan architecture name “Behavioral”, dengan ketentuan entity sebagai berikut :
5. Setelah masukan code program dibawah ini :
12345678901112131415161718192021222324252627282930
library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_unsigned.ALL;
entity bedaplus isPort ( x : in STD_LOGIC_VECTOR (15 downto 0);
clk : in STD_LOGIC; clr : in STD_LOGIC; a_to_g : out STD_LOGIC_VECTOR (6 downto 0); an : out STD_LOGIC_VECTOR (3 downto 0); dp : out STD_LOGIC);
end bedaplus;
architecture Behavioral of bedaplus issignal s : STD_LOGIC_VECTOR (1 downto 0);signal digit : STD_LOGIC_VECTOR (3 downto 0);signal aen : STD_LOGIC_VECTOR (3 downto 0);signal clkdiv : STD_LOGIC_VECTOR (20 downto 0);
begins <= clkdiv(18 downto 17);aen <= "1111";dp <= '1';
process(s,x)begin
case s iswhen "00" => digit <=x(3 downto 0);when "01" => digit <=x(7 downto 4);when "10" => digit <=x(11 downto 8);
ACHMAD RAHMAN MAWARDI - 2210141045
31323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
when others => digit <=x(15 downto 12);end case;
end process;
process(digit)begin
case digit iswhen x"0" => a_to_g <= "0000001"; --0when x"1" => a_to_g <= "1001111"; --1when x"2" => a_to_g <= "0010010"; --2when x"3" => a_to_g <= "0000110"; --3when x"4" => a_to_g <= "1001100"; --4when x"5" => a_to_g <= "0100100"; --5when x"6" => a_to_g <= "0100000"; --6when x"7" => a_to_g <= "0001111"; --7when x"8" => a_to_g <= "0000000"; --8when x"9" => a_to_g <= "0000100"; --9when x"A" => a_to_g <= "0001000"; --awhen x"B" => a_to_g <= "1100000"; --bwhen x"C" => a_to_g <= "0110001"; --cwhen x"D" => a_to_g <= "1000010"; --dwhen x"E" => a_to_g <= "0110000"; --ewhen others => a_to_g <= "0111000"; --f
end case;end process;
-- Digit select: ancodeprocess(s,aen)begin
an <= "1111";if aen(conv_integer(s))='1' then
an(conv_integer(s))<='0';end if;
end process;
-- Clock deviderprocess(clk, clr)begin
if clr='1' thenclkdiv <= (others => '0');
elsif clk'event and clk='1' thenclkdiv <= clkdiv+1;
end if;end process;
end Behavioral;
ACHMAD RAHMAN MAWARDI - 2210141045
6. Setelah itu buat suatu Implementation Constraints File (*.ucf) dengan ketentuan sebagai berikut
12345678901112131415161718192021222324252627282930
#7 segmentNET "a_to_g[0]" LOC = N16;NET "a_to_g[1]" LOC = F13;NET "a_to_g[2]" LOC = R16;NET "a_to_g[3]" LOC = P15;NET "a_to_g[4]" LOC = N15;NET "a_to_g[5]" LOC = G13;NET "a_to_g[6]" LOC = E14;NET "dp" LOC = P16;
#7 segment itemNET "an[0]" LOC = D14;NET "an[1]" LOC = G14;NET "an[2]" LOC = F14;NET "an[3]" LOC = E13;
NET "btn" LOC = M13;#NET "btn[1]" LOC = M14;#NET "btn[2]" LOC = L13;#NET "btn[3]" LOC = L14;
NET "mclk" LOC = T9;
# PlanAhead Generated physical constraints
NET "sw[0]" LOC = F12;NET "sw[1]" LOC = G12;NET "sw[2]" LOC = H14;NET "sw[3]" LOC = H13;
7. Jadikan bedaplustop sebagai top modul, lalu lakukan sintesis program.8. Jalankan program pada iMPACT dan amati hasilnya.
ACHMAD RAHMAN MAWARDI - 2210141045
ANALISA :
Dari program yang dituliskan pada percobaan ini dapat diketahui bahwa model yang digunakan adalah model structural dimana ada code yang digunakan sebagai top modul yang digabungkan dengan codelainnya. Pada dasarnya bedaplus hanya menyediakan seluruh system (entity dan archotectuur) agar digunakan oleh bedaplustop melalui port map. Penambahan 1 nilai BCD pada percobaan ini dilakukan oleh bagian : clock div
12345678910
-- Clock deviderprocess(clk, clr)begin
if clr='1' thenclkdiv <= (others => '0');
elsif clk'event and clk='1' thenclkdiv <= clkdiv+1;
end if;end process;
Setelah dilakukan pengecekan maka akan ditambah dengan 1, lalu dimasukan ke nilai “S<=clkdiv(18 downto 17);” hal ini lah yang membuat nilai S berubah, kemudian nilai digit berbeda dan nilai seven segment pun jadi berbeda
KESIMPULAN :
Rangkaian beda plus ini menggunakan dibuat menggunakan model structural dimana dilakukan penyebaran component dan process yang kemudian disatukan lagi menggunakan port map. Hal ini menyebabkan ada banyak entity dan architecture. Output dari rangkaian ini adalah nilai awal (2 nilai seven segment awal) ditambah dengan 1 digit BCD dan ditampilkan (2 seven segment akhir). Penggunaan signal disini sama halnya dengan penggunakan wire pada simulasi rangkaina elektronika yang berguna untuk menyambungkan komponen kompoenen
ACHMAD RAHMAN MAWARDI - 2210141045
GAMBAR HASIL PERCOBAAN :
ACHMAD RAHMAN MAWARDI - 2210141045
ACHMAD RAHMAN MAWARDI - 2210141045
top related