Kemarin iseng memulai belajar vhdl lagi…
Ada contoh program vhdl yang membuat rangkaian sederhana 2 to 1 multiplexer menggunakan pendekatan behavioral level design, kodenya kira-kira begini:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY multiplexer IS PORT (
d0, d1, s: IN STD_LOGIC;
y: OUT STD_LOGIC);
END multiplexer;
ARCHITECTURE Behavioral OF multiplexer IS
BEGIN
PROCESS(s, d0, d1)
BEGIN
y <= d0 WHEN s = ‘0′ ELSE d1;
END PROCESS;
END Behavioral;
Tapi kok pas dikompilasi error ya??? yang bagian WHEN-nya, udah saya pelototi kok kayaknya ga ada yang salah, akhirnya saya modifikasi memakai IF ELSE menjadi begini:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY multiplexer is PORT(
d0,d1,s : IN STD_LOGIC;
y : OUT STD_LOGIC);
END multiplexer;
ARCHITECTURE Behavioral OF multiplexer IS
–blok sekuensial-> ciri dari behavioural level
BEGIN
PROCESS(s, d0, d1)
BEGIN
IF s=’0′ THEN
y <= d0;
ELSE
y <= d1;
END IF;
–y<=d0 WHEN s=’0′ ELSE d1;
END PROCESS;
END Behavioral;
baru bisa bener???? Mastar2x vhdl ada yang tahu kah salahnya apa?? atau memang compilernya yang tidak mampu?? saya menggunakan software altera quartus 6.0
October 26, 2008 at 12:32 pm
salahnya disini chu… hmm…
tar aja deh kita omongin di lab…
…
halah :p
pdhl sbnrnya karena gw jg ga ngerti, hahaha..
December 15, 2008 at 11:26 pm
perasaan di sini:
kalau nggak salah, kalau pakai WHEN, harusnya
Seingat saya sih…
*baru belajar VHDL*
December 15, 2008 at 11:32 pm
kurang koma di belakang baris pertama…
harusnya
*pake WHEN biasanya menghindari K-map yang gede-gede, jadi masukin tabel kebenaran aja…*
April 21, 2009 at 9:55 am
wah!!