Professional Documents
Culture Documents
Ch¬ng 2
t×m hiÓu c«ng nghÖ fpga cña xilinx
Ch¬ng 3
GIíI THIÖU NG¤N NG÷ M¤ T¶ PHÇN CøNG VHDL
Ch¬ng 4
THIÕT KÕ M¹CH §IÖN Tö TR£N KIT SPARTAN 3E
Ch¬ng 1
Giíi thiÖu tæng quan vÒ Asic lËp tr×nh ®îc
Bao gåm mét m¶ng hai chiÒu c¸c cæng logic gièng nhau ®îc
x¸c ®Þnh s½n trªn phiÕn silic.
C¸c cæng logic ®îc nèi víi nhau bëi c¸c líp kÕt nèi. ViÖc kÕt
nèi gi÷a c¸c cæng logic ®îc thùc hiÖn bëi mÆt n¹ do ngêi
thiÕt kÕ t¹o ra.
Gi¸ thµnh rÎ h¬n c¸c lo¹i ASIC kh¸c.
Thêi gian chÕ t¹o tõ vµi ngµy ®Õn 2 tuÇn.
1.2.3 C¸c linh kiÖn logic lËp tr×nh ®îc
(Programmable logic devices)
Gåm hai lo¹i : PLD (Programmable Logic Device) vµ FPGA (Field
Programmable Gate Array).
Logic cell vµ mask layer cã s½n (kh«ng theo yªu cÇu cña user).
Interconnect lËp tr×nh ®îc.
Ma trËn cac macrocell bao gåm PAL+FF hoÆc Latch.
Thêi gian thiÕt kÕ hoµn chØnh kh¸ nhanh ( kho¶ng vµi giê).
Field-programmable: PROM, EPROM, EEPROM, UVPROM.
Mask-programmable: Mask- programmable ROM (Masked
ROM)
PLD tæ hîp gåm:
PAL cã m¶ng c¸c phÇn tö logic AND lËp tr×nh ®îc vµ c¸c
PLA cã kÕt nèi cã thÓ lËp tr×nh ®îc cho c¶ hai m¶ng phÇn
tö AND vµ OR.
PLD tuÇn tù:
CPLD
Ch¬ng 2
t×m hiÓu c«ng nghÖ fpga cña xilinx
2.1 CÊu tróc chung cña FPGA
2.1.1 CLB (Configurable Logic Block)
YB
G4
Y
G3
. LOOK UP CARRY
AND S YQ
.
G2 TABLE D
CONTROL
LOGIC
CLK
EC R
F5 IN
BY
. .
SR
XB
F4 X
CARRY
F3
. LOOK UP AND
S
.
TABLE CONTROL
F2 D XQ
. .
LOGIC
F1
CLK
EC R
BX
C IN
CE
SRAM
Lâi cøng (hard core): TÝch hîp trong chip bëi nhµ s¶n xuÊt
c¸c th«ng sè cè ®Þnh, ®îc gäi lµ Intellectual Property (IP)
Lâi mÒm (soft core): CÊu tróc tÝch hîp cã thÓ thay ®æi lËp tr×nh
®îc.
2.4 øng dông cña FPGA
u ®iÓm
Nhîc ®iÓm
Tèc ®é thÊp
tÇng cæng. Qu¸ tr×nh tèi u ®îc thùc hiÖn trªn netlist ë tÇng
thÓ ®îc m« pháng ®Ó kiÓm tra ph¸t hiÖn nh÷ng lçi x¶y ra
giai ®o¹n nµy sÏ t¹o ra sù s¾p xÕp vËt lý cho chip PLD/FPGA
Mét ®o¹n Code chuÈn cña VHDL gåm tèi thiÓu 3 môc sau:
Khai b¸o LIBRARY: chøa mét danh s¸ch cña tÊt c¶ c¸c thviÖn ®
thÕ nµo.
Khai b¸o Library
LIBRARY library_name;
USE library_name.package_name.package_parts;
Th«ng thêng cã 3 gãi, tõ 3 th viÖn kh¸c nhau thêng ®îc sö dông
trong thiÕt kÕ:
ieee.std_logic_1164 (from the ieee library).
standard (from the std library).
work (work library).
C¸c phÇn c¬ b¶n cña mét Library
Entity ( thùc thÓ)
Mét ENTITY lµ mét danh s¸ch m« t¶ c¸c ch©n vµo/ra ( c¸c PORT)
cña m¹ch ®iÖn. Có ph¸p nhsau:
ENTITY entity_name IS
PORT (
port_name : signal_mode signal_type;
port_name : signal_mode signal_type;
...);
END entity_name;
ARCHITECTURE ( cÊu tróc)
To¸n tö g¸n.
To¸n tö logic.
To¸n tö to¸n häc.
To¸n tö so s¸nh.
To¸n tö dÞch.
Thuéc tÝnh.
C¸c lÖnh song song: Tất cả c¸c lệnh trong architecture đều được
thực hiện đồng thời (song song) giống như trong phần cứng, c¸c
cổng logic hoạt động đồng thời.
Một process hoạt động như một c©u lệnh vµ được thực hiện
đồng thời với c¸c c©u lệnh kh¸c.
Bªn trong một process, c¸c lệnh được thực hiện tuần tự theo thứ
tự từ trªn xuống dưới. Điều nµy gióp cho việc chia nhỏ một lệnh
rất phức tạp thµnh c¸c lệnh đơn giản hơn.
Có ph¸p khai b¸o Process:
Gi¸ trị của variable được cập nhật ngay lập tức trong khi gi¸ trị của
tÝn hiệu signal sẽ được cập nhật khi process kết thóc
Biến vµ tÝn hiệu cã thể đựơc g¸n gi¸ trÞ cho nhau
Biến chỉ được dïng tạm thời trong process, nếu gi¸ trị của nã muốn
được truy cập ngoµi process ta phải g¸n gi¸ trÞ đã cho một tÝn hiệu.
3.9 Chương tr×nh con
Thủ tục: cã thể trả về nhiều gi¸ trÞ, cã thể cã c¸c biến số lµà c¸c tÝn
hiệu vµo, ra hoặc vµo\ra.
Hµm: chỉ trả về một gi¸ trị vµ tất cả c¸c biến số chỉ cã thể lµà tÝn
hiệu vµo.
Thủ tục vµ hµm cã 2 loại: song song vµ tuần tự. Thủ tục hoặc hµm
song song được đặt ngoµi process vµ thủ tục hoặc hµm tuần tự chỉ
được đặt trong process.
C¸c lệnh trong chương tr×nh con được thực hiện tuần tự giống như
process.
Ch¬ng 4
THIÕT KÕ M¹CH §IÖN Tö TR£N KIT SPARTAN 3E
Component KCPSM3
Port (
address : out std_locgic_vector ( 9 downto 0 );
instruction : in std_locgic_vector ( 17 downto 0 );
port_id : out std_locgic_vector ( 7 downto 0 );
write_stroble : out std_locgic_;
out_port : out std_locgic_vector ( 7 downto 0 );
read_stroble : out std_locgic_;
in_port : in std_locgic_vector ( 7 downto 0 );
interrupt : in std_locgic;
interrupt_ack : out std_locgic;
reset : in std_locgic;
clk : in std_locgic;
);
end component
Processor: kcpsm3
Port map (
Address => address_signal,
Instruction => Instruction_signal,
Port_id => port_id_signal,
Write_stroble => write_stroble_signal,
Out_port => out_port_signal,
Read_stroble => read_stroble_signal,
In_port => In_port_signal,
Interrupt => Interrupt_signal,
Interrupt_ack => Interrupt_ack_signal,
Reset => Reset_ signal,
Clk => Clk_signal
);
Khai b¸o component vµ g¸n c¸c thùc thÓ cña bé nhí
ch¬ng tr×nh trong FPGA:
Component prog_rom
Port (
address : out std_locgic_vector ( 9 downto 0 );
instruction : in std_locgic_vector ( 17 downto 0 );
clk : in std_locgic;
);
end component
program: prog_rom
Port map (
Address => address_signal,
Instruction => Instruction_signal,
Clk =>
Clk_signal
);
S¬ ®å cÊu tróc vi ®iÒu khiÓn PicoBlaze
4.2 PhÇn mÒm thiÕt kÕ
4.2.1 M« t¶ kh¸i qu¸t vÒ ISE
ISE (Integrate Software Environment)- m«i trêng phÇn mÒm
tÝch hîp- lµ mét bé phÇn mÒm thiÕt kÕ cña Xilinx víi giíi h¹n
øng dông rÊt réng tõ nh÷ng thiÕt kÕ ban ®Çu víi CPLD ®Õn
nh÷ng thö nghiÖm thiÕt kÕ víi ASIC vµ ®Æc biÖt lµ c¸c thiÕt
kÕ bËc cao cña FPGA. ISE cho phÐp t¹o ra c¸c s¶n phÈm thiÕt
kÕ th«ng qua viÖc nhËp c¸c thiÕt kÕ vµo thiÕt bÞ ch¬ng tr×nh
ho¸ cña Xilinx.
ISE cho phÐp cã thÓ lùa chän mét hoÆc nhiÒu ph¬ng ¸n
thiÕt kÕ kh¸c nhau bao gåm:
ThiÕt kÕ b»ng ng«n ng÷ m« t¶ phÇn cøng HDL
(VHDL,Verilog HDL, ABEL).
ThiÕt kÕ díi d¹ng s¬ ®å cæng Logic (Schematic).
§å h×nh tr¹ng th¸i (State Machines).
4.2.2 C¸c giai ®o¹n thiÕt kÕ sö dông ISE
§Ó t¹o mét thiÕt kÕ trong ISE (®èi víi c¶ CPLD vµ
FPGA), ngêi thiÕt kÕ ph¶i tr¶i qua c¸c bíc sau:
T¹o mét dù ¸n míi (New Project) hoÆc më mét dù ¸n ®· cã.
§a vµo c¸c rµng buéc (quy t¾c) nhsù ®Þnh thêi, quy t¾c
g¸n ch©n, vµ ®Þnh c¸c vïng.
Lùa chän c¸c thuéc tÝnh ®Ó tæng hîp vµ thùc hiÖn thiÕt kÕ.
M« pháng thiÕt kÕ
Thùc hiÖn thiÕt kÕ: ThiÕt kÕ sÏ ®îc tæng hîp (nÕu nã cha thùc
hiÖn viÖc nµy) vµ thùc thi thiÕt kÕ gåm cã dÞch(Translate), ¸nh x¹
(Map), s¾p ®Æt vµ kÕt nèi (Plane & Route).
Xem l¹i nh÷ng b¸o c¸o cña viÖc dÞch, ¸nh x¹, s¾p ®Æt vµ kÕt nèi.
Thay ®æi nh÷ng thuéc tÝnh, rµng buéc... vµ tiÕp tôc thùc hiÖn thiÕt
kÕ. LÆp l¹i cho ®Õn khi thiÕt kÕ ®· ®¹t yªu cÇu.
Xem sù s¾p ®Æt thiÕt kÕ trong FloorPlanner, cã thÓ dïng tay ®Æt
vµ nhãm l¹i trËt tù logic b»ng Mapping trong Floorplanner
Xem sù s¾p ®Æt vµ kÕt nèi thiÕt kÕ trong FPGA Editor (®èi víi tr
êng hîp thiÕt kÕ FPGA), cã thÓ trùc tiÕp Ên ®Þnh viÖc kÕt nèi trong
c¸c môc thiªt kÕ b»ng FPGA Editor.
T¹o mét file ch¬ng tr×nh (.bit) ®Ó cÊu h×nh cho thiÕt bÞ.
T¹o mét PROM, ACE, hoÆc file JTAG ®Ó gì rèi hoÆc t¶i xuèng
thiÕt bÞ.
Sö dông c«ng cô IMPACT ®Ó n¹p ch¬ng tr×nh cho thiÕt bÞ víi mét
c¸p lËp tr×nh.
Tæng quan mét luång thiÕt kÕ trªn ISE
NhËp thiÕt kÕ (Design Entry)
Trong khi nhËp thiÕt kÕ, ph¶i t¹o c¸c file nguån trªn cë së môc ®Ých
thiÕt kÕ. Cã thÓ t¹o ra c¸c file thiÕt kÕ bËc cao b»ng c¸ch dïng ng«n
ng÷ m« t¶ phÇn cøng (ch¼ng h¹n nhVHDL, Verilog, hay Abel) hoÆc
dïng 1 s¬ ®å (schematic). Ngêi thiÕt kÕ cã thÓ dïng nhiÒu ®Þnh d¹ng
cho c¸c file nguån cÊp thÊp trong c¸c thiÕt kÕ cña m×nh.
ThiÕt kÕ ALU.
thanh.