Upload
xarles
View
57
Download
0
Embed Size (px)
DESCRIPTION
חברת BitLee. קורס : VHDL יישומי לתעשיה. VHDL- V ery high speed integrated circuits H ardware D escription L anguage. מהי שפת VHDL. שפת תיאור חומרה – הרעיון הכללי רכיבים מתוכנתים שיטות תכנון. רכיבים מתוכנתים. CPLD. FPGA. Complex Programmable Logic Device. Field Programmable - PowerPoint PPT Presentation
Citation preview
BitLeeBitLeeחברת חברת
יישומי לתעשיה יישומי לתעשיהVHDLVHDLקורס : קורס :
VHDL-Very high speed integrated circuits
Hardware
Description
Language.
VHDLVHDLמהי שפת מהי שפת
שפת תיאור חומרה – הרעיון הכללי•
רכיבים מתוכנתים•
שיטות תכנון •
רכיבים מתוכנתיםרכיבים מתוכנתים
CPLD FPGAField
ProgrammableGateArray
ComplexProgrammable
LogicDevice
Complex Programmable Logic Complex Programmable Logic Device (CPLD)Device (CPLD)
PAL-likeblock
PAL-likeblock
PAL-likeblock
PAL-likeblock
I/O
blo
ck
I/O
blo
ckI/
O b
lock
I/O
blo
ck
Interconnection wires
D Q
D Q
PAL-like block
PAL-like block
FPGA Basic StructureFPGA Basic Structure
Logic block
I/O block
Interconnectionswitches
Flex 10KFlex 10K
FLEX10KFLEX10Kמשאבים פנימיים של רכיבי משאבים פנימיים של רכיבי FPGAFPGAממשפחת ממשפחת
תכנון גרפיתכנון גרפי
חסרונות של תכנון גרפיחסרונות של תכנון גרפי
העדר גמישות •
קושי בביצוע שינוים•
אפשרויות הדמיה מוגבלות•
סביבת עבודה לא נוחה•
בעיות התאמה בין תוכנות שונות•
שיטת תכנון אלטרנטיבית –שיטת תכנון אלטרנטיבית – באמצעות שפה באמצעות שפה
גמישות מרבית•
ביצוע שינוים בקלות •
סימולציה מתקדמת•
עבודה עם טקסט בד"כ נוחה יותר מאשר עם •שרטוטים
אוניברסאליות •
תכנון באמצעות שפהתכנון באמצעות שפה
אפשרויות חדשות העומדות לרשות אפשרויות חדשות העומדות לרשות המתכנן באמצעות שפההמתכנן באמצעות שפה
תיאור התנהגות לעומת תיאור מבנה•
בניית מעגל ע"י תוכנות סינתזה "אוטומטיות"•
הסתכלות "מלמעלה" •
VHDLVHDLתהליך התכנון בעזרת תהליך התכנון בעזרת
תכנון לוגי•
תיאור של התכנון באמצעות השפה•
ביצוע בדיקות סימולציה•
ביצוע תהליך סינתזה•
סימולציה
סינתזהסינתזה
clk
en
count
0 3 2 2 2 5 1 0 3
clk
rst 3
count
State machine
en
מימוש מכונת מצבים בצורה גראפית:
דיאגראמת גלים
דיאגראמת בועות
zeroCount=000
threeCount=011
twoCount=010
fiveCount=101
oneCount=001
en=0
en=0
en=0
en=0
en=0
en=1
en=1
en=1
en=1
en=1
Next State(t+1)Current State (t)
Q0(t+1)Q1(t+1)Q2(t+1)Q0(t)Q1(t)Q2(t)en11000000001000xxx01000101100xxx00101001010xxx0110xxx111000000011001001xxx01011101101xxx00111011011xxx0111xxx1111
1 01 10 10 00 00 1
11 110
enxQ2(t)
Q1(t) Q0(t)
XXXX
XX
XX
1 01 10 10 00 00 1
1
1 11 0
enxQ2(t)
Q1(t) Q0(t)
XXXX
XX
XX
1
1
)(2)1(2 )15,14,12,10,7,6,4,2()13( tt QenQ
)(0)(1)(0)(1
)1(1 )15,14,12,10,7,6,4,2()11,3,0(
tttt
t
QenQQenQ
Q
)(2)(0)(2)(0)(0
)1(0 )15,14,12,10,7,6,4,2()13,11,9,5,0(
ttttt
t
QQenQQenQen
Q
1 01 10 10 00 00 1
1
1 11 0
enxQ2(t)
Q1(t) Q0(t)
XXXX
XX
XX
1
111
:מימוש המעגלD2 Q2
countD1 Q1
D0 Q0
en
:VHDLמימוש מכונת מצבים בעזרת ENTITY state_machine IS
PORT(clk, reset, en : IN STD_LOGIC;count : OUT STD_LOGIC_VECTOR (2 DOWNTO 0));
END ;ARCHITECTURE a OF state_machine IS
TYPE STATE_TYPE IS (zero, one, five, two, three);SIGNAL state: STATE_TYPE;
BEGINPROCESS (clk, reset)BEGIN
IF reset = '1' THENstate <= zero;
ELSIF clk'EVENT AND clk = '1' THENCASE state IS
WHEN zero =>IF en = '0' THEN
state <= three;ELSE state <= zero;END IF;
WHEN one =>IF en = '0' THEN
state <= three;ELSE state <= zero;END IF;
WHEN five =>IF en = '0' THEN
state <= one;ELSE state <= five;END IF;
WHEN two =>IF en = '0' THEN
state <= three;ELSE state <= five;END IF;
WHEN OTHERS =>IF en = '0' THEN
state <= three;ELSE state <= two;END IF;
END CASE;END IF;
END PROCESS;WITH state SELECT
count <= "000" WHEN zero,"001" WHEN one,"101" WHEN five,"010" WHEN two,"011" WHEN three;
END a;