
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 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

Verilog Hardware Description Language
Lâm Đc Khi University of Information Technology Page 2
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;

Verilog Hardware Description Language
Lâm Đc Khi University of Information Technology Page 3
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.

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 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.

