CONTACT | TEL : 02-728-3440, EMAIL : SALES@ASTRONLOGIC.COM
ASTRON LOGIC RESEARCH AND DEVELOPMENT CO.,LTD.

» WEBBOARD

อยากได้ตัวอย่างการเขียนโปรแกรมด้วยภาษา VHDL ครับ

ผมทดลองเขียนโปรแกรมด้วยภาษา
VHDl ด้วยวิธี structural แล้วผลปรากฏว่าคอมไพล์ไม่ผ่าน
ขอความกรุนาช่วยส่งตัวอย่างการเขียนแบบ structural ที่คอมไพล์ผ่านแล้วมาให้สัก 2 ตัวอย่างเอาแบบที่เข้าใจง่ายๆนะครับผมกำลังศึกษาข้อมูลอยู่ครับ
ขอบคุณครับ

จากคุณ : ดิเรก ยาวิชัย ตั้งกระทู้นี้เมื่อ 15:08 [12/06/2003]

ความคิดเห็นที่1

ตัวอย่างการเขียนโปรแกรม VHDL แบบ Structure นะครับ ยกตัวอย่างเป็นวงจร Adder มี Source Code ดังต่อไปนี้ครับบ

LIBRARY ieee ;
USE ieee.std_logic_1164.all ;

ENTITY adder4 IS
PORT ( Cin : IN STD_LOGIC ;
x3, x2, x1, x0 : IN STD_LOGIC ;
y3, y2, y1, y0 : IN STD_LOGIC ;
s3, s2, s1, s0 : OUT STD_LOGIC ;
Cout : OUT STD_LOGIC ) ;
END adder4 ;

ARCHITECTURE Structure OF adder4 IS
SIGNAL c1, c2, c3 : STD_LOGIC ;
COMPONENT fulladd
PORT ( Cin, x, y : IN STD_LOGIC ;
s, Cout : OUT STD_LOGIC ) ;
END COMPONENT ;
BEGIN
stage0: fulladd PORT MAP ( Cin, x0, y0, s0, c1 ) ;
stage1: fulladd PORT MAP ( c1, x1, y1, s1, c2 ) ;
stage2: fulladd PORT MAP ( c2, x2, y2, s2, c3 ) ;
stage3: fulladd PORT MAP (
Cin => c3, Cout => Cout, x => x3, y => y3, s => s3 ) ;
END Structure ;

จะเห็นว่าเรามีการเรียกใช้ Component ชื่อ FULLADD.VHD ซึ่งเราจะต้องเขียนโค๊ดของวงจร FullAdd ขึ้นมาก่อนดังนี้

LIBRARY ieee ;
USE ieee.std_logic_1164.all ;

ENTITY fulladd IS
PORT ( Cin, x, y : IN STD_LOGIC ;
s, Cout : OUT STD_LOGIC ) ;
END fulladd ;

ARCHITECTURE LogicFunc OF fulladd IS
BEGIN
s <= x XOR y XOR Cin ;
Cout <= (x AND y) OR (Cin AND x) OR (Cin AND y) ;
END LogicFunc ;

ไฟล์ FullAdd.VHD จะต้องเก็บไว้ใน Directory เดียวกับไฟล์ Adder4.VHD นะครับ เมื่อเราทำการคอมไพล์ไฟล์ Adder4.VHD มันก็จะโหลดไฟล์ FullAdd.VHD ขึ้นมาคอมไพล์ด้วยครับ

หรือเราจะอาจจะสร้าง FullAdd เก็บไว้เป็น Package Library ก็ได้ตามสะดวกครับ

ผมส่ง File ตัวอย่างไปที่ email คุณแล้วนะครับ

จากคุณ : support@astronlogic.com 10:32 [13/06/2003]

ความคิดเห็นที่2

เราเก็บใว้ใน folder เดียวกันแล้วมันจะค้นเจอเอง แล้วตัวเล็กตัวใหญ่มีผลใหมครับ

จากคุณ : nacarin 18:18 [29/01/2004]

ความคิดเห็นที่3

ตัวเล็กตัวใหญ่ไม่มีผลครับ

จากคุณ : support@astronlogic.com 21:46 [01/02/2004]
ร่วมด้วยช่วยกันตอบครับ
ชื่อ :
E-Mail :
คำตอบ :







คลิกเพื่อแทรกรูป