Giáo trình Verilog HDL | Trường Đại học sư phạm kỹ thuật TP Hồ Chí Minh
Chương1. Dẫn nhập thiết kế hệ thống với Verilog. Khi kích thước và độ phức tập của hệ thống thiết kế ngày càng tăng . Tài liệu giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!
Môn: Tin học ứng dụng (TECO125474)
Trường: Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Thông tin:
Tác giả:
Preview text:
Giáo trình Verilog HDL
Verilog Hardware Description Language NI DUNG
Chương1. Dn nhp thit k h thng s vi Verilog
Khi kích thưc và ñ phc tp ca h thng thit k ngày càng tăng,
nhiu công c h tr thit k trên máy tính (CAD) ñưc s dng vào quá
trình thit k phn cng. Thi kì ñu, nhng công c mô phng và to ra
phn cng ñã ñưa ra phương pháp thit k, kim tra, phân tích, tng hp và
t ñng to ra phn cng mt cách phc tp. S phát trin không ngng
ca nhng công c thit k mt cách t ñng là do s phát trin ca nhng
ngôn ng mô t phn cng (HDLs) và nhng phương pháp thit k da trên
nhng ngôn ng này. Da trên nhng ngôn ng mô t phn cng (HDLs),
nhng công c CAD trong thit k h thng s ñưc phát trin và s dng
rng rãi bi nhng kĩ sư thit k phn cng. Hin ti, ngưi ta vn ñang
tip tc nghiên cu ñ tìm ra nhng ngôn ng mô t phn cng tt hơn và
tru tưng hơn. Mt trong nhng ngôn ng mô t phn cng ñưc s dng
rng rãi nht ñó là ngôn ng Verilog HDL. Do ñưc chp nhn rng rãi
trong ngành công nghip thit k s, Verilog ñã tr thành mt kin thc
ñưc ñòi hi phi bit ñi vi nhng kĩ sư cũng như sinh viên làm vic và
h!c tp trong lĩnh vc phn cng máy tính.
Trong chương này, ta s" trình bày nhng công c và môi trưng làm
vic có s#n tương thích vi ngôn ng Verilog mà mt kĩ sư thit k có th
s dng trong qui trình thit k t ñng ca mình ñ giúp ñ$y nhanh tin ñ
thit k. Chúng ta s" tho lun tng bưc v thit k phân cp, thit k mc
cao t vic mô t thit k b%ng ngôn ng Verilog ñn vic to ra phn cng
ca thit k ñó. Nhng qui trình và nhng t khóa chuyên môn cũng s"
ñưc minh h!a phn này. K tip, chúng ta cũng s" tho lun nhng công Lâm Đc Khi
University of Information Technology Page 1
Verilog Hardware Description Language
c CAD hin có tương thích vi Verilog và chc năng ca nó trong môi
trưng thit k t ñng. Phn cui cùng ca chương này s" nói v mt s
ñ&c tính ca Verilog khin nó tr thành mt ngôn ng ñưc nhiu kĩ sư
thit k phn cng la ch!n.
1.1 Qui trình thit k s
Trong thit k mt h thng s s dng môi trưng thit k t ñng,
qui trình thit k b't ñu b%ng vic mô t thit k ti nhiu mc ñ tru
tưng khác nhau và kt thúc b%ng vic to ra danh sách các linh kin cũng
như các ñưng kt ni gia các linh kin vi nhau ( netlist) cho mt mch
tích hp vi ng dng c th (ASIC), mch in ( layout) cho mt mch tích
hp theo yêu cu khách hàng ( custom IC), ho&c mt chương trình cho mt
thit b( logic có kh năng lp trình ñưc (PLD). Hình 1.1 mô t tng bưc
trong qui trình thit k này.
Bưc ñu ca thit k, mt thit k s" ñưc mô t bi s hn hp
gia mô t mc ñ hành vi (behavioural) Verilog, s dng nhng gói
(module) thit k Verilog ñã ñưc thit k s#n, và vic gán h thng các
bus và wire ñ liên kt các gói thit k này thành mt h thng hoàn ch)nh.
Kĩ sư thit k cũng phi có trách nhim to ra d liu ñ kim tra
(testbench) xem thit k ñúng chc năng hay chưa cũng như dùng ñ kim
tra thit k sau khi tng hp. Vic kim tra thit k có th thc hin ñưc
b%ng vic mô phng, chèn nhng kĩ thut kim tra, kim tra thông thưng
ho&c kt hp c ba phương pháp trên. Sau bưc kim tra ñánh giá thit k (
bưc này ñưc g!i là kim tra tin tng hp (presynthesis verification)),
thit k s" ñưc tip tc b%ng vic tng hp ñ to ra phn cng thc s
cho h thng thit k cui cùng (ASIC, custom IC or FPLD,…). Nu h
thng thit k là ASIC, thit k s" s" ñưc sn xut bi nhà sn xut khác; Lâm Đc Khi
University of Information Technology Page 2
Verilog Hardware Description Language
nu là custom IC, thit k s" ñưc sn xut trc tip; nu là FPLD, thit k
s" ñưc np lên thit b( lp trình ñưc. Sau bưc tng hp và trưc khi
phn cng thc s ñưc to ra, mt quá trình mô phng khác (hu tng hp
(postsynthesis)) phi ñưc thc hin. Vic mô phng này, ta có th s dng
testbench tương t testbench ñã s dng trong mô phng tin tng hp
(presynthesis). B%ng phương pháp này, mô hình thit k mc ñ hành vi
và mô hình phn cng ca thit k ñưc kim tra vi cùng d liu ngõ vào.
S khác nhau gia mô phng tin tng hp và hu tng hp ñó là mc ñ
chi tit có th ñt ñưc t mi loi mô phng. Lâm Đc Khi
University of Information Technology Page 3
Verilog Hardware Description Language
Nhng phn tip theo s" mô t t) m) v mi khi trong hình 1.1.
1.1.1 Dn nhp thit k
Bưc ñu tiên trong thit k h thng s là bưc dn nhp thit k.
Trong bưc này, thit k ñưc mô t b%ng Verilog theo phong cách phân
cp t cao xung thp (top-down). Mt thit k hoàn ch)nh có th bao g*m
nhng linh kin mc cng ho&c mc transistor, nhng khi (module)
phn cng có chc năng phc tp hơn ñưc mô t mc ñ hành vi, ho&c
nhng linh kin ñưc lit kê bi cu trúc bus.
Do nhng thit k Verilog mc cao thưng ñưc mô t mc ñ
mà ti ñó nó mô t h thng nhng thanh ghi và s truyn d liu gia
nhng thanh ghi này thông qua h thng bus, vic mô t h thng thit k
mc ñ này ñưc xem như là mc ñ truyn d liu gia các thanh ghi
(RTL). Mt thit k hoàn ch)nh ñưc mô t như vy s" to ra ñưc phn
cng tương ng thc s rõ ràng. Nhng cu trúc thit k Verilog mc ñ
RTL s dng nhng phát biu qui trình (producedural statements), phép
gán liên tc (continuous assignments), và nhng phát biu g!i s dng khi
(module) ñã xây dng s#n.
Nhng phát biu qui trình Verilog (procedural statements) ñưc
dùng ñ mô t mc ñ hành vi mc cao. Mt h thng ho&c mt linh kin
ñưc mô t mc ñ hành vi thì tương t vi vic mô t trong ngôn ng
phn mm. Ví d, chúng ta có th mô t mt linh kin b%ng vic kim tra
ñiu kin ngõ vào ca nó, bt c hiu, ch cho ñn khi có s kin nào ñó
xy ra, quan sát nhng tín hiu b't tay và to ra ngõ ra. Mô t h thng mt
cách qui trình như vy, cu trúc if-else, case ca Verilog cũng như nhng
ngôn ng phn mm khác ñu s dng như nhau. Lâm Đc Khi
University of Information Technology Page 4
Verilog Hardware Description Language
Nhng phép gán liên tc (continuous assignment) trong Verilog là
nhng phép gán cho vic th hin chc năng nhng khi logic, nhng phép
gán bus, và mô t vic kt ni gia h thng bus và các chân ngõ vào và
ngõ ra. Kt hp vi nhng hàm Boolean và nhng biu thc có ñiu kin,
nhng cu trúc ngôn ng này có th ñưc ñ mô t nhng linh kin và h
thng theo nhng phép gán thanh ghi và bus ca chúng.
Nhng phát biu g!i s dng khi Verilog ñã ñưc thit k s#n
(instantiantion statements) ñưc dùng cho nhng linh kin mc thp trong
mt thit k mc ñ cao hơn. Thay vi mô t mc ñ hành vi, chc
năng, ho&c bus ca mt h thng, chúng ta có th mô t mt h thng b%ng
Verilog b%ng cách kt ni nhng linh kin mc ñ thp hơn. Nhng linh
kin này có th nh như là mc cng hay transistor, ho&c có th ln như là
mt b vi x lí hoàn ch)nh.
1.1.2 Testbench trong Verilog
Mt h thng ñưc thit k dùng Verilog phi ñưc mô phng và
kim tra xem thit k ñã ñúng chc năng chưa trưc khi to ra phn cng.
Trong quá trình chy mô phng này, nhng li thit k và s không tương
thích gia nhng linh kin dùng trong thit k có th ñưc phát hin. Chy
mô phng mt thit k ñòi hi vic to ra mt d liu ngõ vào kim tra và
quá trình quan sát kt qu sau khi chy mô phng, d liu dùng ñ kim tra
này ñưc g!i là testbench. Mt testbench s dng cu trúc mc cao ca
Verilog ñ to ra d liu kim tra, quan sát ñáp ng ngõ ra, và c vic b't
tay gia nhng tín hiu trong thit k. Bên trong testbench, h thng thit
k cn chy mô phng s" ñưc g!i ra (instantiate) trong testbench. D liu
testbench cùng vi h thng thit k s" to ra mt mô hình mô phng mà s"
ñưc s dng bi mt công c mô phng Verilog. Lâm Đc Khi
University of Information Technology Page 5
Verilog Hardware Description Language
1.1.3 Đánh giá thit k
Mt nhiêm v quan tr!ng trong bt kì thit k s nào cũng cn ñó là
ñánh giá thit k. Đánh giá thit k là quá trình mà ngưi thit k s" kim
tra thit k ca h! có sai sót nào có th xy ra trong sut quá trình thit k
hay không. Mt sai sót thit k có th xy ra do s mô t thit k mơ h*, do
sai sót ca ngưi thit k, ho&c s dng không ñúng nhng khi trong thit
k. Đánh giá thit k có th thc hin b%ng mô phng, b%ng vic chèn
nhng kĩ thut kim tra, ho&c kim tra thông thưng. 1.1.3.1 Mô phng
Chy mô phng dùng trong vic ñánh giá thit k ñưc thc hin
trưc khi thit k ñưc tng hp. Bưc chy mô phng này ñưc hiu như
mô phng mc ñ hành vi, mc ñ RTL hay tin tng hp. , mc ñ
RTL, mt thit k bao g*m xung thi gian clock nhưng không bao g*m trí
hoãn thi gian trên cng và dây kt ni (wire). Chy mô phng mc ñ
này s" chính xác theo xung clock. Thi gian ca vic chy mô phng
mc ñ RTL là theo tín hiu xung clock, không quan tâm ñn nhng nguy
him tim $n có th khin thit k b( li (hazards, glitch), hin tưng chy
ñua không kim soát gia nhng tín hiu (race conditions), nhng vi phm
v thi gian setup và hold ca tín hiu ngõ vào, và nhng vn ñ liên quan
ñn ñ(nh thi khác. Ưu ñim ca vic mô phng này là tc ñ chy mô
phng nhanh so vi chy mô phng mc cng ho&c mc transistor.
Chy mô phng cho mt thit k ñòi hi d liu kim tra, thông
thưng trong môi trưng mô phng Verilog s" cung cp nhiu phương
pháp khác nhau ñ ñưa d liu kim tra này vào thit k ñ kim tra. D
liu kim tra có th ñưc to ra b%ng ñ* h!a s dng nhng công c son
tho dng sóng, ho&c b%ng testbench. Hình 1.2 mô t hai cách khác nhau ñ Lâm Đc Khi
University of Information Technology Page 6
Verilog Hardware Description Language
ñ(nh nghĩa d liu kim tra ngõ vào ca mt công c mô phng. Nhng
ngõ ra ca công c mô phng là nhng dng sóng ngõ ra ( có th quan sát trc quan).
Đ chy mô phng vi Verilog testbench, trong testbench s" g!i h
thng thit k ra ñ kim tra, lúc này h thng thit k ñưc xem như là
mt phn ca testbench, testbench s" cung cp d liu kim tra ñn ngõ vào
ca h thng thit k. Hình 1.3 mô t mt ñon code ca mt mch ñm,
testbench ca nó, cũng như kt qu chy mô phng ca nó dưi dng sóng
ngõ ra. Quan sát hình ta thy vic chy mô phng s" ñánh giá chc năng
ca mch ñm. Vi mi xung clock thì ngõ ra b ñm s" tăng lên 1. Chú ý
r%ng, theo biu ñ* thi gian thì ngõ ra b ñm thay ñi ti cnh lên xung
clock và không có thi gian trì hoãn do cng cũng như trì hoãn trên ñưng
truyn. Kt qu chy mô phng ch) ra r%ng chc năng ca mch ñm là
chính xác mà không cn quan tâm ñn tn s xung clock.
Hin nhiên, nhng linh kin phn cng thc s s" có ñáp ng khác
nhau. Da trên ñ(nh thi và thi gian trì hoãn ca nhng khi ñưc s Lâm Đc Khi
University of Information Technology Page 7
Verilog Hardware Description Language
dng, thi gian t cnh lên xung clock ñn ngõ ra ca b ñm s" có ñ trì
hoãn khác không. Hơn na, nu tn s xung clock ñưc cp vào mch thc
s quá nhanh so vi tc ñ truyn tín hiu bên trong các cng và transistor
ca thit k thì ngõ ra ca thit k s" không th bit ñưc.
Vic mô phng này không cung cp chi tit v các vn ñ ñ(nh thi
ca h thng thit k ñưc mô phng. Do ñó, nhng vn ñ tim $n v ñ(nh
thi ca phn cng do trì hoãn trên cng s" không th phát hin ñưc. Đây
là vn ñ ñin hình ca quá tr)nh mô phng tin tng hp ho&c mô phng
mc ñ hnh vi. Điu bit ñưc trong hình 1.3 ñó là b ñm ca ta ñm s
nhi phân. Thit k hot ñng nhanh chm th nào, hot ñông ñưc tn s
nào ch) có th bit ñưc b%ng vic kim tra thit k sau tng hp. Lâm Đc Khi
University of Information Technology Page 8
Verilog Hardware Description Language
1.1.3.2 Kĩ thut chèn kim tra (assertion)
Thay vì phi dò theo kt qu mô phng b%ng m't hay to nhng d
liu kim tra testbench phc tp, kĩ thut chèn thit b( giám sát có th ñưc
s dng ñ kim tra tun t nhng ñ&c tính ca thit k trong sut quá trình
mô phng. Thit b( giám sát ñưc ñ&t bên trong h thng thit k ñưc mô
phng bi ngưi thit k. Ngưi thit k s" quyt ñ(nh xem chc năng ca
thit k ñúng hay sai, nhng ñiu kin nào thit k cn phi tha mãn.
Nhng ñiu kin này phi tuân theo nhng ñ&c tính thit k, và thit b(
giám sát ñưc chèn vào h thng thit k ñ ñm bo nhng ñ&c tính này
không b( vi phm. Chui thit b( giám sát này s" sai nu mt ñ&c tính nào
ñó ñưc ñ&t vào bi ngưi thit k b( vi phm. Nó s" cnh báo ngưi thit
k r%ng thit k ñã không ñúng chc năng như mong ñi. Thư vin OVL (
Open Verification Library) cung cp mt chui nhng thit b( giám sát ñ
chèn vào h thng thit k ñ giám sát nhng ñ&c tính thông thưng ca
thit k. Ngưi thit k có th dùng nhng kĩ thut giám sát ca riêng mình
ñ chèn vào thit k và dùng chúng kt hp vi testbench trong vic kim tra ñánh giá thit k.
1.1.3.3 Kim tra thông th n ư g
Kim tra thông thưng là quá trình kim tra nhng ñ&c tính bt kì
ca thit k. Khi mt thit k hoàn thành, ngưi thit k s" xây dng mt
chui nhng ñ&c tính tương ng vi hành vi ca thit k. Công c kim tra
thông thưng s" kim tra thit k ñ ñm bo r%ng nhng ñ&c tính ñưc mô
t ñáp ng ñưc tt c nhng ñiu kin. Nu có mt ñ&c tính ñưc phát
hin là không ñáp ng ñúng, ñ&c tính ñó ñưc xem như vi phm. Đ&c tính
ñ bao ph (coverage) ch) ra bao nhiêu phn trăm ñ&c tính ca thit k ñã ñưc kim tra. Lâm Đc Khi
University of Information Technology Page 9
Verilog Hardware Description Language
1.1.4 Biên dch và tng hp thit k
Tng hp là quá trình to ra phn cng t ñng t mt mô t thit k
phn cng tương ng rõ ràng. Mt mô t phn cng Verilog dùng ñ tng
hp không th bao g*m tín hiu và mô t ñ(nh thi mc cng, và nhng
cu trúc ngôn ng khác mà không d(ch sang nhng phương trình logic tun
t ho&c t hp. Hơn th na, nhng mô t phân cng Verilog dùng cho
tng hp phi tuân theo nhng phong cách vit code mt cách nht ñ(nh
cho mch t hp cũng như mch tun t. Nhng phong cách này và cu
trúc Verilog tương ng ca chúng ñưc ñ(nh nghĩa trong vic tng hp RTL.
Trong qui trình thit k, sau khi mt thit k ñưc mô t hoàn thành
và kt qu mô phng tin tng hp ca nó ñưc kim tra bi ngưi thit k,
nó phi ñưc biên d(ch ñ nó tin gn hơn ñn vic to thành phn cng
thc s trên silicon. Bưc thit k này ñòi hi vic mô t phn cng ca
thit k phi ñưc nhn ra. Ví d, chúng ta phi ch) ñn mt ASIC c th,
ho&c mt FPGA c th như là thit b( phn cng mc ñích ca thit k. Khi
thit b( mc ñích ñưc ch) ra, nhng tp tin mô t v công ngh
(technology files) ca phn cng ( ASIC, FPGA, ho&c custom IC) s" cung
cp chi tit nhng thông tin v ñ(nh thi và mô t chc năng cho quá trình
biên d(ch. Quá trình biên d(ch s" chuyn ñi nhng phn khác nhau ca
thit k ra mt ñ(nh dng trung gian ( bưc phân tích), kt ni tt c các
phn li vi nhau, to ra mc logic tương ng ( bưc tng hp), s'p xp và
kt ni ( place and route ) nhng linh kin trong thit b( phn cng mc
ñích li vi nhau ñ thc hiên chc năng như thit k mong mun và to ra
thông tin chi tit v ñ(nh thi trong thit k. Lâm Đc Khi
University of Information Technology Page 10
Verilog Hardware Description Language
Hình 1.4 mô t quá trình biên d(ch và mô t hình nh kt qu ngõ ra
ca mi bưc biên d(ch. Như trên hình, ngõ vào ca bưc này là mt mô t
phn cng bao g*m nhng mc ñ mô t khác nhau ca Verilog, và kt qu
ngõ ra ca nó là mt phn cng chi tit cho thit b( phn cng mc ñích
như FPLD hay ñ sn xut chip ASIC. 1.1.4.1 Phân tích
Mt thit k hoàn ch)nh ñưc mô t dùng Verilog có th bao g*m mô
t nhiu mc ñ khác nhau như mc ñ hành vi, h thng bus và dây kt
ni vi nhng linh kin Verilog khác. Trưc khi mt thit k hoàn ch)nh
to ra phn cng, thit k phi ñưc phân tích và to ra mt ñ(nh dng ñ*ng
nht cho tt c các phn trong thit k. Bưc này cũng kim tra cú pháp và
ng nghĩa ca mã ngõ vào Verilog.
1.1.4.2 To phn cng
Sau khi to ñưc mt d liu thit k có ñ(nh dng ñ*ng nht cho tt
c các linh kin trong thit k, bưc tng hp s" b't ñu b%ng chuyn ñi
d liu thit k trên sang nhng ñ(nh dng phn cng thông thưng như
mt chui nhng biu thc Boolean hay mt netlist nhng cng cơ bn. Lâm Đc Khi
University of Information Technology Page 11
Verilog Hardware Description Language
1.1.4.3 Ti ưu logic
Bưc k tip ca quá trình tng hp, sau khi mt thit k ñưc
chuyn ñi sang mt chui nhng biu thc Boolean, bưc ti ưu logic
ñưc thc hin. Bưc này nh%m mc ñích làm gim nhng biu thc vi
ngõ vào không ñi, loi b nhng biu thc lp li, ti thiu hai mc, ti thiu nhiu mc.
Đây là quá trình tính toán rt hao tn thi gian và công sc, mt s
công c cho phép ngưi thit k quyt ñ(nh mc ñ ti ưu. Kt qu ngõ ra
ca bưc này cũng dưi dng nhng biu thc Boolean, mô t logic dưi
dng bng, ho&c netlist g*m nhng cng cơ bn. Lâm Đc Khi
University of Information Technology Page 12
Verilog Hardware Description Language 1.1.4.4 Binding
Sau bưc ti ưu logic, quá trình tng hp s dng thông tin t thit
b( phn cng mc ñích ñ quyt ñ(nh chính xác linh kin logic nào và thit
b( nào cn ñ hin thc mch thit k. Quá trình này ñưc g!i là binding và
kt qu ngõ ra ca nó ñưc ch) ñ(nh c th s dng cho FPLD, ASIC, hay custom IC.
1.1.4.5 Sp xp và ñi dây liên kt
Bưc s'p xp và ñi dây lien kt s" quyt ñ(nh vic ñ&t v( trí ca các
linh kin trên thit b( phn cng mc ñích. Vic kt ni các ngõ vào và ngõ
ra ca nhng linh kin này dùng h thng dây liên kt và vùng chuyn
mch trên thit b( phn cng mc ñích ñưc quyt ñ(nh bi bưc s'p xp
và ñi dây liên kt này. Kt qu ngõ ra ca bưc này ñưc ñưa ti thit b(
phn cng mc ñích, như np lên FPLD, hay dùng ñ sn xut ASIC.
Mt ví d minh h!a v quá trình tng hp ñưc ch) ra trên hình 1.5.
Trong hình này, mch ñm mà ñã ñưc dùng chy mô phng trong hình 1.3
ñưc tng hp. Ngoài vic mô t phn cng thit k dùng Verilog, công c
tng hp ñòi hi nhng thông tin mô t thit b( phn cng ñích ñ tin hành
quá trình tng hp ca mình. Kt qu ngõ ra ca công c tng hp là danh
sách các cng và flip-flop có s#n trong thit b( phn cng ñích và h thng
dây kt ni gia chúng. Hình 5 cũng ch) ra mt kt qu ngõ ra mang tính
trc quan mà ñã ñưc to ra t ñng b%ng công c tng hp ca Altera Quartus II. Lâm Đc Khi
University of Information Technology Page 13
Verilog Hardware Description Language
1.1.5 Mô phng sau khi tng hp thit k
Sau khi quá trình tng hp hoàn thành, công c tng hp s" to ra
mt netlist hoàn ch)nh cha nhng linh kin ca thit b( phn cng ñích và
các giá tr( ñ(nh thi ca nó. Nhng thông tin chi tit v các cng ñưc dùng
ñ hin thc thit k cũng ñưc mô t trong netlist này. Netlist này cũng
bao g*m nhng thông tin v ñ trì hoãn trên ñưng dây và nhng tác ñng
ca ti lên các cng dùng trong quá trình hu tng hp. Có nhiu ñ(nh dng
netlist ngõ ra có th ñưc to ra bao g*m c ñ(nh dng Verilog. Mt netlist
như vy có th ñưc dùng ñ mô phng, và mô phng này ñưc g!i là mô
phng hu tng hp. Nhng vn ñ v ñ(nh thi, v tn s xung clock, v
hin tưng chy ñua không kim soát, nhng nguy him tim $n ca thit Lâm Đc Khi
University of Information Technology Page 14
Verilog Hardware Description Language
k ch) có th kim tra b%ng mô phng hu tng hp thc hin sau khi thit
k ñưc tng hp. Như trên hình 1.1, ta có th s dng d liu kim tra mà
ñã dùng cho quá trình mô phng tin tng hp ñ dùng cho quá trình mô phng hu tng hp.
Do ñ trì hoãn trên ñưng dây và các cng, ñáp ng ca thit k sau
khi chy mô phng hu tng hp s" khác vi ñáp ng ca thit k mà
ngưi thit k mong mun. Trong trưng hp này, ngưi thit k phi sa
li thit k và c g'ng tránh nhng sai sót v ñ(nh thi và hin tưng chy
ñua gia nhng tín hiu mà không th kim soát.
1.1.6 Phân tích thi gian
Quan sát trên h)nh 1.1, bưc phân tích thi gian là mt phn trong
quá trình biên d(ch, ho&c trong mt s công c thì bưc phân tích thi gian
này ñưc thc hin sau quá trình biên d(ch. Bưc này s" to ra kh năng
xu nht v ñ trì hoãn , tc ñ xung clock, ñ trì hoãn t cng này ñn
cng khác, cũng như thi gian cho vic thit lp và gi tín hiu. Kt qu
ca bưc phân tích thi gian ñưc th hin dưi dng bng ho&c biu ñ*.
Ngưi thit k s dng nhng thông tin này ñ xác ñ(nh tc ñ xung clock,
hay nói cách khác là xác ñ(nh tc ñ hot ñng ca mch thit k.
1.1.7 To linh kin phn cng
Bưc cui cùng trong qui trình thit k t ñng da trên Verilog ñó
là to ra phn cng thc s cho thit k. Bưc này có th to ra mt netlist
dùng ñ sn xut ASIC, mt chương trình ñ np vào FPLD, hay mt mch in cho mch IC. Lâm Đc Khi
University of Information Technology Page 15
Verilog Hardware Description Language
1.2 Ngôn ng phn cng Verilog ( Verilog HDL)
Trong phn trưc, ta ñã trình bày tng bưc thit k mc ñ RTL
t mt mô t thit k Verilog cho ñn vic hin thc ra mt phn cng thc
s. Qui trình thit k này ch) có th thc hin ñưc khi ngôn ng Verilog
có th hiu ñưc bi ngưi thit k h thng, ngưi thit k mc ñ RTL,
ngưi kim tra, công c mô phng, công c tng hp, và các máy móc liên
quan. Bi vì tm quan tr!ng ca nó trong qui trình thit k, Verilog ñã tr
thành mt chu$n quc t IEEE. Chu$n này ñưc s dng bi ngưi thit k
cũng như ngưi xây dng công c thit k.
1.2.1 Quá trình phát trin Verilog
Verilog ñưc ra ñi vào ñu năm 1984 bi Gateway Design
Automation. Khi ñu, ngôn ng ñu tiên ñưc dùng như là mt công c
mô phng và kim tra. Sau thi gian ñu ngôn ng này ñưc chp nhn bi
ngành công nghip ñin t, mt công c mô phng, mt công c phân tích
thi gian, và sau này vào năm 1987, công c tng hp ñã ñưc xây dng và
phát trin da vào ngôn ng này. Gateway Design Automation và nhng
công c da trên Verilog ca hang sau này ñưc mua bi Cadence Design
System. T sau ñó, Cadence ñóng vai trò ht sc quan tr!ng trong vic phát
trin cũng như ph bin ngôn ng mô t phn cng Verilog.
Vào năm 1987, VHDL tr thành mt chu$n ngôn ng mô t phn
cng ca IEEE. Bi do s h tr ca B quc phòng (DoD), VHDL ñưc
s dng nhiu trong nhng d án ln ca chính ph M.. Trong n lc ph
bin Verilog, vào năm 1990, OVI ( Open Verilog International) ñưc thành
lp và Verilog chim ưu th trong lĩnh vc công nghip. Điu này ñã to ra
mt s quan tâm khá ln t ngưi dùng và các nhà cung cp EDA ti Verilog. Lâm Đc Khi
University of Information Technology Page 16
Verilog Hardware Description Language
Vào năm 1993, nhng n lc nh%m chu$n hóa ngôn ng Verilog
ñưc b't ñu. Verilog tr thành chu$n IEEE, IEEE Std 1364-1995, vào
năm 1995. Vi nhng công c mô phng, công c tng hp, công c phân
tích thi gian, và nhng công c thit k da trên Verilog ñã có s#n, chu$n
Verilog IEEE này nhanh chóng ñưc chp nhn sâu rng trong cng ñ*ng thit k ñin t.
Mt phiên bn mi ca Verilog ñưc chp nhn bi IEEE vào năm
2001. Phiên bn mi này ñưc xem như chu$n Verilog-2001 và ñưc dùng
bi hu ht ngưi s dng và ngưi phát trin công c. Nhng ñ&c ñim
mi trong phiên bn mi ñó là nó cho phép bên ngoài có kh năng ñ!c và
ghi d liu, qun lí thư vin, xây dng cu hình thit k, h tr nhng cu
trúc có mc ñ tru tưng cao hơn, nhng cu trúc mô t s l&p li, cũng
như thêm mt s ñ&c tính vào phiên bn này. Quá trình ci tin chu$n này
vn ñang ñưc tip tc vi s tài tr ca IEEE.
1.2.2 Nhng ñc tính ca Verilog
Verilog là mt ngôn ng mô t phn cng dùng ñ ñ&c t phn cng
t mc transistor ñn mc hành vi. Ngôn ng này h tr nhng cu trúc
ñ(nh thi cho vic mô phng ñ(nh thi mc ñ chuyn mch và tc thi,
nó cũng có kh năng mô t phn cng ti mc ñ thut toán tru tưng.
Mt mô t thit k Verilog có th bao g*m s trn ln gia nhng khi
(module) có mc ñ tru tưng khác nhau vi s khác nhau v mc ñ chi tit. Lâm Đc Khi
University of Information Technology Page 17
Verilog Hardware Description Language
1.2.2.1 Mc ñ chuyn mch
Nhng ñ&c ñim ca ngôn ng này khin nó tr nên lí tưng trong
vic mô hình hóa và mô phng mc ñ chuyn mch bao g*m kh năng
chuyn mch mt chiu cũng như hai chiu vi nhng thông s v ñ trì
hoãn và lưu tr ñin tích. Nhng trì hoãn mch ñin có th ñưc mô hình
hóa như là trì hoãn ñưng truyn, trì hoãn t thp lên cao hay t cao xung
thp. Đ&c ñim lưu tr ñin tích mc ñ tru tưng trong Verilog khin
nó có kh năng mô t nhng mch ñin vi linh kin ñng như là CMOS hay MOS.
1.2.2.2 Mc ñ cng
Nhng cng cơ bn vi nhng thông s ñưc ñ(nh nghĩa trưc s"
cung cp mt kh năng thun tin trong vic th hin netlist và mô phng
mc cng. Đi vi vic mô phng mc cng vi mc ñích chi tit và ñ&c
bit, nhng linh kin cng có th ñưc ñ(nh nghĩa mc ñ hành vi.
Verilog cũng cung cp nhng công c cho vic ñ(nh nghĩa nhng phn t
cơ bn vi nhng chc năng ñ&c bit. Mt h thng s logic 4 giá tr( ñơn
gin (0,1,x,z) ñưc s dng trong Verilog ñ th hin giá tr( cho tín hiu.
Tuy nhien, ñ mô hình mc logic chính xác hơn, nhng tín hiu Verilog
g*m 16 mc giá tr( v ñ mnh ñưc thêm vào 4 giá tr( ñơn gin trên.
1.2.2.3 Đ trì hoãn gia pin ñn pin
Mt tin ích trong vic mô t ñ(nh thi cho các linh kin ti ngõ vào
và ngõ ra cũng ñưc cung cp trong Verilog. Tin ích này có th ñưc dùng
ñ truy vn li thông tin v ñ(nh thi trong mô t tin thit k ban ñu. Hơn
na, tin ích này cũng cho phép ngưi vit mô hình hóa tinh ch)nh hành vi
ñ(nh thi ca mô hình da trên hin thc phn cng. Lâm Đc Khi
University of Information Technology Page 18
Verilog Hardware Description Language 1.2.2.4 Mô t Bus
Nhng tin ích v mô hình bus và thanh ghi cũng ñưc cung cp bi
Verilog. Đi vi nhiu cu trúc bus khác nhau, Verilog h tr chc năng
phân gii bus và wire vi h thng logic 4 giá tr( (0,1,x,z). Vi s kt hp
gia chc năng bus logic và chc năng phân gii, nó cho phép mô hình hóa
ñưc hu ht các loi bus. Đi vi vic mô hình hóa thanh ghi, vic mô t
xung clock mc cao và nhưng cu trúc ñiu khin ñ(nh thi có th ñưc s
dng ñ mô t thanh ghi vi nhng tín hiu xung clock và tín hiu reset khác nhau.
1.2.2.5 Mc ñ hành vi
Nhng khi qui trình ( procedural blocks) ca Verilog cho phép mô
t thut toán ca nhng cu trúc phn cng. Nhng cu trúc này tương t
vi ngôn ng lp trình phn mm nhưng có kh năng mô t phn cng.
1.2.2.6 Nhng tin ích h thng
Nhng tác v h thng trong Verilog cung cp cho ngưi thit k
nhng công c trong vic to ra d liu kim tra testbench, tp tin truy xut
ñ!c, ghi, x lí d liu, to d liu, và mô hình hóa nhng phn cng
chuyên dng. Nhng tin ích h thng dùng cho b nh ñ!c và thit b(
logic lp trình ñưc (PLA) cung cp nhng phương pháp thun tin cho
vic mô hình hóa nhng thit b( này. Nhng tác v hin th( và I/O có th
ñưc s dng ñ kim soát tt c nhng ngõ vào và ngõ ra d liu ca ng
dng và mô phng. Verilog cho phép vic truy xut ñ!c và ghi ngu nhiên ñn các tp tin. Lâm Đc Khi
University of Information Technology Page 19