Giáo trình
Verilog HDL
Verilog Hardware Description Language
Lâm Đc Khi University of Information Technology Page 1
NI DUNG
Chương1. Dn nhp thit k h thng s vi Verilog
Khi kích thưc ñ 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 ñu, nhng công c phng 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 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 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 ñó 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
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 môi trưng làm
vic s#n tương thích vi ngôn ng Verilog mà mt kĩ sư thit k 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
Verilog Hardware Description Language
Lâm Đc Khi University of Information Technology Page 2
c CAD hin tương thích vi Verilog chc năng ca 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 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 t thit k ti nhiu mc ñ tru
tưng khác nhau 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 kh năng lp trình ñưc (PLD). Hình 1.1 t tng bưc
trong qui trình thit k này.
Bưc ñu ca thit k, mt thit k s" ñưc t bi s hn hp
gia 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 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 th thc hin ñưc
b%ng vic 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 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 ASIC, thit k s" s" ñưc sn xut bi nhà sn xut khác;
Verilog Hardware Description Language
Lâm Đc Khi University of Information Technology Page 3
nu custom IC, thit k s" ñưc sn xut trc tip; nu 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 phng tin tng hp
(presynthesis). B%ng phương pháp này, hình thit k mc ñ hành vi
mô hình phn cng ca thit k ñưc kim tra vi cùng d liu ngõ vào.
S khác nhau gia phng tin tng hp hu tng hp ñó mc ñ
chi tit có th ñt ñưc t mi loi mô phng.
Verilog Hardware Description Language
Lâm Đc Khi University of Information Technology Page 4
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 bưc dn nhp thit k.
Trong bưc này, thit k ñưc t b%ng Verilog theo phong cách phân
cp t cao xung thp (top-down). Mt thit k hoàn ch)nh th bao g*m
nhng linh kin mc cng ho&c mc transistor, nhng khi (module)
phn cng chc năng phc tp hơn ñưc 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 t mc ñ
ti ñó t h thng nhng thanh ghi 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 t như vy s" to ra ñưc phn
cng tương ng thc s 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 t mc ñ hành vi thì tương t vi vic mô t trong ngôn ng
phn mm. d, chúng ta có th t mt linh kin b%ng vic kim tra
ñiu kin ngõ vào ca nó, bt c hiu, ch cho ñn khi 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.