חברת BitLee קורס : VHDL יישומי לתעשיה. VHDL- Very high speed integrated circuits...

Preview:

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;

Recommended