Professional Documents
Culture Documents
Verilog Hardware Description Language NI DUNG Chng1. Dn nhp thit k h thng s vi Verilog
Khi kch thc v phc tp ca h thng thit k ngy cng tng, nhiu cng c h tr thit k trn my tnh (CAD) c s dng vo qu trnh thit k phn cng. Thi k u, nhng cng c m phng v to ra phn cng a ra phng php thit k, kim tra, phn tch, tng hp v t ng to ra phn cng mt cch phc tp. S pht trin khng ngng ca nhng cng c thit k mt cch t ng l do s pht trin ca nhng ngn ng m t phn cng (HDLs) v nhng phng php thit k da trn nhng ngn ng ny. Da trn nhng ngn ng m t phn cng (HDLs), nhng cng c CAD trong thit k h thng s c pht trin v s dng rng ri bi nhng k s thit k phn cng. Hin ti, ngi ta vn ang tip tc nghin cu tm ra nhng ngn ng m t phn cng tt hn v tru tng hn. Mt trong nhng ngn ng m t phn cng c s dng rng ri nht l ngn ng Verilog HDL. Do c chp nhn rng ri trong ngnh cng nghip thit k s, Verilog tr thnh mt kin thc c i hi phi bit i vi nhng k s cng nh sinh vin lm vic v hc tp trong lnh vc phn cng my tnh. Trong chng ny, ta s trnh by nhng cng c v mi trng lm vic c sn tng thch vi ngn ng Verilog m mt k s thit k c th s dng trong qui trnh thit k t ng ca mnh gip y nhanh tin thit k. Chng ta s tho lun tng bc v thit k phn cp, thit k mc cao t vic m t thit k bng ngn ng Verilog n vic to ra phn cng ca thit k . Nhng qui trnh v nhng t kha chuyn mn cng s c minh ha phn ny. K tip, chng ta cng s tho lun nhng cng
Lm c Khi University of Information Technology Page 1
Lm c Khi
Page 3
Bc u tin trong thit k h thng s l bc dn nhp thit k. Trong bc ny, thit k c m t bng Verilog theo phong cch phn cp t cao xung thp (top-down). Mt thit k hon chnh c th bao gm nhng linh kin mc cng hoc mc transistor, nhng khi (module) phn cng c chc nng phc tp hn c m t mc hnh vi, hoc nhng linh kin c lit k bi cu trc bus. Do nhng thit k Verilog mc cao thng c m t mc m ti n m t h thng nhng thanh ghi v s truyn d liu gia nhng thanh ghi ny thng qua h thng bus, vic m t h thng thit k mc ny c xem nh l mc truyn d liu gia cc thanh ghi (RTL). Mt thit k hon chnh c m t nh vy s to ra c phn cng tng ng thc s r rng. Nhng cu trc thit k Verilog mc RTL s dng nhng pht biu qui trnh (producedural statements), php gn lin tc (continuous assignments), v nhng pht biu gi s dng khi (module) xy dng sn. Nhng pht biu qui trnh Verilog (procedural statements) c dng m t mc hnh vi mc cao. Mt h thng hoc mt linh kin c m t mc hnh vi th tng t vi vic m t trong ngn ng phn mm. V d, chng ta c th m t mt linh kin bng vic kim tra iu kin ng vo ca n, bt c hiu, ch cho n khi c s kin no xy ra, quan st nhng tn hiu bt tay v to ra ng ra. M t h thng mt cch qui trnh nh vy, cu trc if-else, case ca Verilog cng nh nhng ngn ng phn mm khc u s dng nh nhau.
Lm c Khi University of Information Technology Page 4
Mt h thng c thit k dng Verilog phi c m phng v kim tra xem thit k ng chc nng cha trc khi to ra phn cng. Trong qu trnh chy m phng ny, nhng li thit k v s khng tng thch gia nhng linh kin dng trong thit k c th c pht hin. Chy m phng mt thit k i hi vic to ra mt d liu ng vo kim tra v qu trnh quan st kt qu sau khi chy m phng, d liu dng kim tra ny c gi l testbench. Mt testbench s dng cu trc mc cao ca Verilog to ra d liu kim tra, quan st p ng ng ra, v c vic bt tay gia nhng tn hiu trong thit k. Bn trong testbench, h thng thit k cn chy m phng s c gi ra (instantiate) trong testbench. D liu testbench cng vi h thng thit k s to ra mt m hnh m phng m s c s dng bi mt cng c m phng Verilog.
Lm c Khi University of Information Technology Page 5
Mt nhim v quan trng trong bt k thit k s no cng cn l nh gi thit k. nh gi thit k l qu trnh m ngi thit k s kim tra thit k ca h c sai st no c th xy ra trong sut qu trnh thit k hay khng. Mt sai st thit k c th xy ra do s m t thit k m h, do sai st ca ngi thit k, hoc s dng khng ng nhng khi trong thit k. nh gi thit k c th thc hin bng m phng, bng vic chn nhng k thut kim tra, hoc kim tra thng thng.
1.1.3.1 M phng
Chy m phng dng trong vic nh gi thit k c thc hin trc khi thit k c tng hp. Bc chy m phng ny c hiu nh m phng mc hnh vi, mc RTL hay tin tng hp. mc RTL, mt thit k bao gm xung thi gian clock nhng khng bao gm tr hon thi gian trn cng v dy kt ni (wire). Chy m phng mc ny s chnh xc theo xung clock. Thi gian ca vic chy m phng mc RTL l theo tn hiu xung clock, khng quan tm n nhng nguy him tim n c th khin thit k b li (hazards, glitch), hin tng chy ua khng kim sot gia nhng tn hiu (race conditions), nhng vi phm v thi gian setup v hold ca tn hiu ng vo, v nhng vn lin quan n nh thi khc. u im ca vic m phng ny l tc chy m phng nhanh so vi chy m phng mc cng hoc mc transistor. Chy m phng cho mt thit k i hi d liu kim tra, thng thng trong mi trng m phng Verilog s cung cp nhiu phng php khc nhau a d liu kim tra ny vo thit k kim tra. D liu kim tra c th c to ra bng ha s dng nhng cng c son tho dng sng, hoc bng testbench. Hnh 1.2 m t hai cch khc nhau
Lm c Khi University of Information Technology Page 6
chy m phng vi Verilog testbench, trong testbench s gi h thng thit k ra kim tra, lc ny h thng thit k c xem nh l mt phn ca testbench, testbench s cung cp d liu kim tra n ng vo ca h thng thit k. Hnh 1.3 m t mt on code ca mt mch m, testbench ca n, cng nh kt qu chy m phng ca n di dng sng ng ra. Quan st hnh ta thy vic chy m phng s nh gi chc nng ca mch m. Vi mi xung clock th ng ra b m s tng ln 1. Ch rng, theo biu thi gian th ng ra b m thay i ti cnh ln xung clock v khng c thi gian tr hon do cng cng nh tr hon trn ng truyn. Kt qu chy m phng ch ra rng chc nng ca mch m l chnh xc m khng cn quan tm n tn s xung clock. Hin nhin, nhng linh kin phn cng thc s s c p ng khc nhau. Da trn nh thi v thi gian tr hon ca nhng khi c s
Lm c Khi University of Information Technology Page 7
Lm c Khi
Page 8
Thay v phi d theo kt qu m phng bng mt hay to nhng d liu kim tra testbench phc tp, k thut chn thit b gim st c th c s dng kim tra tun t nhng c tnh ca thit k trong sut qu trnh m phng. Thit b gim st c t bn trong h thng thit k c m phng bi ngi thit k. Ngi thit k s quyt nh xem chc nng ca thit k ng hay sai, nhng iu kin no thit k cn phi tha mn. Nhng iu kin ny phi tun theo nhng c tnh thit k, v thit b gim st c chn vo h thng thit k m bo nhng c tnh ny khng b vi phm. Chui thit b gim st ny s sai nu mt c tnh no c t vo bi ngi thit k b vi phm. N s cnh bo ngi thit k rng thit k khng ng chc nng nh mong i. Th vin OVL ( Open Verification Library) cung cp mt chui nhng thit b gim st chn vo h thng thit k gim st nhng c tnh thng thng ca thit k. Ngi thit k c th dng nhng k thut gim st ca ring mnh chn vo thit k v dng chng kt hp vi testbench trong vic kim tra nh gi thit k.
1.1.3.3 Kim tra thng thng
Kim tra thng thng l qu trnh kim tra nhng c tnh bt k ca thit k. Khi mt thit k hon thnh, ngi thit k s xy dng mt chui nhng c tnh tng ng vi hnh vi ca thit k. Cng c kim tra thng thng s kim tra thit k m bo rng nhng c tnh c m t p ng c tt c nhng iu kin. Nu c mt c tnh c pht hin l khng p ng ng, c tnh c xem nh vi phm. c tnh bao ph (coverage) ch ra bao nhiu phn trm c tnh ca thit k c kim tra.
Lm c Khi University of Information Technology Page 9
Tng hp l qu trnh to ra phn cng t ng t mt m t thit k phn cng tng ng r rng. Mt m t phn cng Verilog dng tng hp khng th bao gm tn hiu v m t nh thi mc cng, v nhng cu trc ngn ng khc m khng dch sang nhng phng trnh logic tun t hoc t hp. Hn th na, nhng m t phn cng Verilog dng cho tng hp phi tun theo nhng phong cch vit code mt cch nht nh cho mch t hp cng nh mch tun t. Nhng phong cch ny v cu trc Verilog tng ng ca chng c nh ngha trong vic tng hp RTL. Trong qui trnh thit k, sau khi mt thit k c m t hon thnh v kt qu m phng tin tng hp ca n c kim tra bi ngi thit k, n phi c bin dch n tin gn hn n vic to thnh phn cng thc s trn silicon. Bc thit k ny i hi vic m t phn cng ca thit k phi c nhn ra. V d, chng ta phi ch n mt ASIC c th, hoc 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 cng ngh (technology files) ca phn cng ( ASIC, FPGA, hoc custom IC) s cung cp chi tit nhng thng tin v nh thi v m t chc nng cho qu trnh bin dch. Qu trnh bin dch s chuyn i nhng phn khc nhau ca thit k ra mt nh dng trung gian ( bc phn tch), kt ni tt c cc phn li vi nhau, to ra mc logic tng ng ( bc tng hp), sp xp v kt ni ( place and route ) nhng linh kin trong thit b phn cng mc ch li vi nhau thc hin chc nng nh thit k mong mun v to ra thng tin chi tit v nh thi trong thit k.
Lm c Khi
Page 10
Mt thit k hon chnh c m t dng Verilog c th bao gm m t nhiu mc khc nhau nh mc hnh vi, h thng bus v dy kt ni vi nhng linh kin Verilog khc. Trc khi mt thit k hon chnh to ra phn cng, thit k phi c phn tch v to ra mt nh dng ng nht cho tt c cc phn trong thit k. Bc ny cng kim tra c php v ng ngha ca m ng vo 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 cc linh kin trong thit k, bc tng hp s bt u bng chuyn i d liu thit k trn sang nhng nh dng phn cng thng thng nh mt chui nhng biu thc Boolean hay mt netlist nhng cng c bn.
Lm c Khi
Page 11
1.1.4.3 Ti u logic
Bc k tip ca qu trnh tng hp, sau khi mt thit k c chuyn i sang mt chui nhng biu thc Boolean, bc ti u logic c thc hin. Bc ny nhm mc ch lm gim nhng biu thc vi ng vo khng i, loi b nhng biu thc lp li, ti thiu hai mc, ti thiu nhiu mc. y l qu trnh tnh ton rt hao tn thi gian v cng sc, mt s cng c cho php ngi thit k quyt nh mc ti u. Kt qu ng ra ca bc ny cng di dng nhng biu thc Boolean, m t logic di dng bng, hoc netlist gm nhng cng c bn.
Lm c Khi
Page 12
Sau bc ti u logic, qu trnh tng hp s dng thng tin t thit b phn cng mc ch quyt nh chnh xc linh kin logic no v thit b no cn hin thc mch thit k. Qu trnh ny c gi 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 dy lin kt
Bc sp xp v i dy lien kt s quyt nh vic t v tr ca cc linh kin trn thit b phn cng mc ch. Vic kt ni cc ng vo v ng ra ca nhng linh kin ny dng h thng dy lin kt v vng chuyn mch trn thit b phn cng mc ch c quyt nh bi bc sp xp v i dy lin kt ny. Kt qu ng ra ca bc ny c a ti thit b phn cng mc ch, nh np ln FPLD, hay dng sn xut ASIC. Mt v d minh ha v qu trnh tng hp c ch ra trn hnh 1.5. Trong hnh ny, mch m m c dng chy m phng trong hnh 1.3 c tng hp. Ngoi vic m t phn cng thit k dng Verilog, cng c tng hp i hi nhng thng tin m t thit b phn cng ch tin hnh qu trnh tng hp ca mnh. Kt qu ng ra ca cng c tng hp l danh sch cc cng v flip-flop c sn trong thit b phn cng ch v h thng dy kt ni gia chng. Hnh 5 cng ch ra mt kt qu ng ra mang tnh trc quan m c to ra t ng bng cng c tng hp ca Altera Quartus II.
Lm c Khi
Page 13
Sau khi qu trnh tng hp hon thnh, cng c tng hp s to ra mt netlist hon chnh cha nhng linh kin ca thit b phn cng ch v cc gi tr nh thi ca n. Nhng thng tin chi tit v cc cng c dng hin thc thit k cng c m t trong netlist ny. Netlist ny cng bao gm nhng thng tin v tr hon trn ng dy v nhng tc ng ca ti ln cc cng dng trong qu trnh hu tng hp. C nhiu nh dng netlist ng ra c th c to ra bao gm c nh dng Verilog. Mt netlist nh vy c th c dng m phng, v m phng ny c gi l m phng hu tng hp. Nhng vn v nh thi, v tn s xung clock, v hin tng chy ua khng kim sot, nhng nguy him tim n ca thit
Lm c Khi University of Information Technology Page 14
Quan st trn hnh 1.1, bc phn tch thi gian l mt phn trong qu trnh bin dch, hoc trong mt s cng c th bc phn tch thi gian ny c thc hin sau qu trnh bin dch. Bc ny s to ra kh nng xu nht v tr hon , tc xung clock, tr hon t cng ny n cng khc, cng nh thi gian cho vic thit lp v gi tn hiu. Kt qu ca bc phn tch thi gian c th hin di dng bng hoc biu . Ngi thit k s dng nhng thng tin ny xc nh tc xung clock, hay ni cch khc l xc nh tc hot ng ca mch thit k.
1.1.7 To linh kin phn cng
Bc cui cng trong qui trnh thit k t ng da trn Verilog l to ra phn cng thc s cho thit k. Bc ny c th to ra mt netlist dng sn xut ASIC, mt chng trnh np vo FPLD, hay mt mch in cho mch IC.
Lm c Khi
Page 15
Verilog c ra i vo u nm 1984 bi Gateway Design Automation. Khi u, ngn ng u tin c dng nh l mt cng c m phng v kim tra. Sau thi gian u ngn ng ny c chp nhn bi ngnh cng nghip in t, mt cng c m phng, mt cng c phn tch thi gian, v sau ny vo nm 1987, cng c tng hp c xy dng v pht trin da vo ngn ng ny. Gateway Design Automation v nhng cng c da trn Verilog ca hang sau ny c mua bi Cadence Design System. T sau , Cadence ng vai tr ht sc quan trng trong vic pht trin cng nh ph bin ngn ng m t phn cng Verilog. Vo nm 1987, VHDL tr thnh mt chun ngn ng m t phn cng ca IEEE. Bi do s h tr ca B quc phng (DoD), VHDL c s dng nhiu trong nhng d n ln ca chnh ph M. Trong n lc ph bin Verilog, vo nm 1990, OVI ( Open Verilog International) c thnh lp v Verilog chim u th trong lnh vc cng nghip. iu ny to ra mt s quan tm kh ln t ngi dng v cc nh cung cp EDA ti Verilog.
Lm c Khi University of Information Technology Page 16
Verilog l mt ngn ng m t phn cng dng c t phn cng t mc transistor n mc hnh vi. Ngn ng ny h tr nhng cu trc nh thi cho vic m phng nh thi mc chuyn mch v tc thi, n cng c kh nng m t phn cng ti mc thut ton tru tng. Mt m t thit k Verilog c th bao gm s trn ln gia nhng khi (module) c mc tru tng khc nhau vi s khc nhau v mc chi tit.
Lm c Khi
Page 17
Nhng c im ca ngn ng ny khin n tr nn l tng trong vic m hnh ha v m phng mc chuyn mch bao gm kh nng chuyn mch mt chiu cng nh hai chiu vi nhng thng s v tr hon v lu tr in tch. Nhng tr hon mch in c th c m hnh ha nh l tr hon ng truyn, tr hon t thp ln cao hay t cao xung thp. c im lu tr in tch mc tru tng trong Verilog khin n c kh nng 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 thng s c nh ngha trc s cung cp mt kh nng 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 ngha mc hnh vi. Verilog cng cung cp nhng cng c cho vic nh ngha nhng phn t c bn vi nhng chc nng 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 tn hiu. Tuy nhien, m hnh mc logic chnh xc hn, nhng tn hiu Verilog gm 16 mc gi tr v mnh c thm vo 4 gi tr n gin trn.
1.2.2.3 tr hon gia pin n pin
Mt tin ch trong vic m t nh thi cho cc linh kin ti ng vo v ng ra cng c cung cp trong Verilog. Tin ch ny c th c dng truy vn li thng tin v nh thi trong m t tin thit k ban u. Hn na, tin ch ny cng cho php ngi vit m hnh ha tinh chnh hnh vi nh thi ca m hnh da trn hin thc phn cng.
Lm c Khi
Page 18
Nhng tin ch v m hnh bus v thanh ghi cng c cung cp bi Verilog. i vi nhiu cu trc bus khc nhau, Verilog h tr chc nng phn gii bus v wire vi h thng logic 4 gi tr (0,1,x,z). Vi s kt hp gia chc nng bus logic v chc nng phn gii, n cho php m hnh ha c hu ht cc loi bus. i vi vic m hnh ha thanh ghi, vic m t xung clock mc cao v nhng cu trc iu khin nh thi c th c s dng m t thanh ghi vi nhng tn hiu xung clock v tn hiu reset khc nhau.
1.2.2.5 Mc hnh vi
Nhng khi qui trnh ( procedural blocks) ca Verilog cho php m t thut ton ca nhng cu trc phn cng. Nhng cu trc ny tng t vi ngn ng lp trnh phn mm nhng c kh nng m t phn cng.
1.2.2.6 Nhng tin ch h thng
Nhng tc v h thng trong Verilog cung cp cho ngi thit k nhng cng 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 hnh ha nhng phn cng chuyn dng. Nhng tin ch h thng dng cho b nh c v thit b logic lp trnh c (PLA) cung cp nhng phng php thun tin cho vic m hnh ha nhng thit b ny. Nhng tc v hin th v I/O c th c s dng kim sot tt c nhng ng vo v ng ra d liu ca ng dng v m phng. Verilog cho php vic truy xut c v ghi ngu nhin n cc tp tin.
Lm c Khi
Page 19
Cng c tng tc ngn ng lp trnh (PLI ) ca Verilog cung cp mt mi trng cho vic truy xut cu trc d liu Verilog s dng mt th vin cha cc hm ca ngn ng C.
1.2.3 Ngn ng Verilog
Ngn ng Verilog HDL p ng tt c nhng yu cu cho vic thit k v tng hp nhng h thng s. Ngn ng ny h tr vic m t cu trc phn cp ca phn cng t mc h thng n mc cng hoc n c mc cng tc chuyn mch. Verilog cng h tr mnh tt c cc mc m t vic nh thi v pht hin li. Vic nh thi v ng b m c i hi bi phn cng s c ch trng mt cch c bit. Trong Verilog, mt linh kin phn cng c m t bi mt cu trc ngn ng khai bo module. S m t mt module s m t danh sch nhng ng vo v ng ra ca linh kin cng nh nhng thanh ghi v h thng bus bn trong linh kin. Bn trong mt module, nhng php gn ng thi, gi s dng linh kin v nhng khi qui trnh c th c dng m t mt linh kin phn cng. Nhiu module c th c gi mt cch phn cp hnh thnh nhng cu trc phn cng khc nhau. Nhng phn t con ca vic m t thit k phn cp c th l nhng module, nhng linh kin c bn hoc nhng linh kin do ngi dng t nh ngha. m phng cho thit k, nhng phn t con trong cu trc phn cp ny nn c tng hp mt cch ring l. Hin nay c rt nhiu cng c v mi trng da trn Verilog cung cp kh nng chy m phng, kim tra thit k v tng hp thit k. Mi
Lm c Khi University of Information Technology Page 20
Lm c Khi
Page 21
Lm c Khi
Page 22
unsigned_number[.unsigned_number]
exp
[sign]
Decimal_base = [s|S]d | [s|S]D Binary_base = [s|S]b | [s|S]B Octal_base = [s|S]o | [s|S]O Hex_base = [s|S]h | [s|S]H
Lm c Khi
Page 24
Hng s nguyn c th c m t theo nh dng s decimal, hexadecimal, octal v binary. C hai dng biu din hng s nguyn. Dng th nht l mt s thp phn n gin, n c th l mt chui k t t 0 n 9 v c th bt u vi ton t n cng hoc tr. Dng th hai c m t di dng hng c s, n gm ba thnh phn mt l thnh phn m t rng hng s, mt thnh phn l k t mc n c theo sau bi mt k t ca c s tng ng (D), v thnh phn cui cng m t gi tr ca s . Thnh phn u tin, rng hng s, m t rng s bit cha hng s. N c m t nh l mt s thp phn khng du khc khng. V d, rng ca hai s hexadecimal l 8 bit bi v mi mt s hexadecimal cn 4 bit cha. Thnh phn th hai, nh dng c s, bao gm mt k t c th k t thng hoc k t hoa m t c s ca s , ta c th thm vo hoc khng thm vo pha trc n k t s (hoc S) ch rng n l mt s c du, tip tc pha trc n l mt k t mc n. Nhng c s c dng c th l d, D, h, H, o, O, b, B m t cho c s thp phn, c s thp lc phn, c s bt phn v c s nh phn mt cch tng ng. K t mc n v k t nh dng c s khng c cch nhau bi bt k khong trng no.
Lm c Khi University of Information Technology Page 25
Lm c Khi
Page 27
Lm c Khi
Page 28
V d 4 T ng thm vo bn tri reg [11:0] a, b, c, d; initial begin a = h x; b= h 3x; c = h z3; d = h 0z3; end reg [84:0] e = h5; f = hx
Lm c Khi
V d 5: S dng du gch di trong m t s 27_195_000 16b0011_0101_0001_1111 32 h 12ab_f001 Nhng hng s m c rng bit v nhng hng s c du c rng bit l nhng s c du m rng khi n c gn n mt loi d liu l reg bt chp bn thn reg ny c du hay khng. di mc nh ca x v z ging nh di mc nh ca mt s nguyn.
2.5.2 Hng s thc
Nhng s hng s thc c th c biu din nh c m t bi chun IEEE 754-1985, mt chun IEEE cho nhng s double-precision floating point. Nhng s thc c th c m t bng mt trong hai cch, mt l theo dng thp phn ( v d, 14.72 ), hai l theo cch vit hn lm ( v d, 39e8, c ngha l 39 nhn vi 10 ). Nhng s thc c biu din vi du chm thp phn s c t nht mt k s mi bn ca du chm thp phn. V d: 1.2
8
Lm c Khi
Page 30
S thc c th bin i sang s nguyn bng cch lm trn s thc n s nguyn gn nht thay v ct xn s bit ca n. Bin i khng tng minh c th thc hin khi mt s thc c gn n mt s nguyn. Nhng ci ui nn c lm trn khc 0. V d:
Lm c Khi University of Information Technology Page 31
Bin chui l bin c loi d liu l reg vi rng bng vi s k t trong chui nhn vi 8. V d: lu tr mt chui 12 k t Hello world! i hi mt reg c rng 8*12, hoc 96 bit reg [8*12:1] stringvar; initial begin stringvar = hello world!; end
Lm c Khi
Page 32
Chui c th c x l bng vic s dng cc ton t Verilog HDL. Gi tr m c x l bi ton t l mt dy gi tr 8 bit ASCII. V d: module string_test; reg [8*14:1] stringvar; initial begin stringvar = Hello world; $display (%s is stored as %h, stringvar, stringvar); stringvar = {stringvar, !!!}; $display (%s is stored as %h, stringvar, stringvar); end endmodule Kt qu thu c nh sau: Hello world is stored as 00000048656c6c6f20776f726c64 Hello world !!! is stored as 48656c6c6f20776f726c64212121 Khi rng mt bin ln hn rng cn thit lu mt chui gi tr c gn vo, gi tr s c dch phi, v nhng bit ngoi cng bn tri s c gn vo gi tr 0, ging nh thc hin vi gi tr khng phi l
Lm c Khi University of Information Technology Page 33
Mt s k t ch c s dng trong chui khi ng trc n l mt k t m u, gi l k t escape. Bng bn di lit k nhng k t ny ct bn tay phi, vi dy escape m t k t ct bn tay tri. Chui escape \n \t \\ \ \ddd K t to bi chui escape K t xung dng K t tab K t \ K t Mt k t c m t trong 1-3 k s bt phn (0 d 7) Nu t hn ba k t c s dng, k t theo sau khng th l mt k s bt phn. Vic thc thi c th dn n li nu k t c biu din ln hn 377
2.7 Tn nhn dng, t kha v tn h thng Tn nhn dng ( indentifier) c dng gn cho mt thc th (object) mt tn duy nht n c th c gi ti khi cn. Tn nhn dng c th l mt tn nhn dng n gin hoc mt tn nhn dng escaped. Mt
Lm c Khi
Page 34
Tn nhn dng escaped c bt u vi k t gch cho li (\) v kt thc bi khong trng ( k t khong trng, k t tab, k t xung dng). Chng cung cp cch thc chn thm nhng k t ASCII c th in c vo trong tn nhn dng ( gi tr thp phn t 33 n 126, hoc gi tr thp lc phn t 21 n 7E).
Lm c Khi University of Information Technology Page 35
2.7.2 T kha
T kha l nhng t nhn din c nh ngha trc v c dng nh ngha nhng cu trc ngn ng. Mt t kha trong Verilog HDL m ng trc n l mt k t escape s khng c bin dch nh l mt t kha. Tt c nhng t kha c ch c nh ngha di nh dng ch thng. Ph B s cung cp danh sch tt c nhng t kha c nh ngha.
Lm c Khi
Page 36
Du dollar ($) m u mt cu trc ngn ng s cho php pht trin nhng tc v h thng v hm h thng do ngi dng nh ngha. Nhng cu trc h thng khng phi l ngn ng thit k, m n mun ni n chc nng m phng. Mt tn theo sau du $ c bin dch nh l mt tc v h thng hoc hm h thng. C php ca mt tc v h thng/hm h thng c cho nh sau system_task_enable ::= system_task_indentifier [([expression]{, [expression]})]; system_function_call ::= system_function_indentifier [(expression{, expression})] system_function_identifier ::= $[a-zA-Z0-9_$]{[a-zA-Z0-9_$]} system_task_identifier ::= $[a-zA-Z0-9_$]{[a-zA-Z0-9_$]} Du dollar ($) trong system_function_identifier hay
system_task_identifier s khng c theo sau bi khong trng. Mt system_function_identifier hay system_task_identifier khng c thot ra. Tc v h thng/hm h thng c th c nh ngha trong ba vi tr: 1. Mt tp hp chun nhng tc v h thng v hm h thng. 2. Nhng tc v h thng v hm h thng thm vo c nh ngha dng cho PLI.
Lm c Khi
Page 37
Lm c Khi
Page 38
Nhng loi d liu khc nhau trong Verilog c khai bo bng pht biu khai bo d liu. Nhng pht biu ny xut hin trong nhng nh ngha module trc khi s dng v mt s trong chng c th c khai
Lm c Khi University of Information Technology Page 39
phn tch sau qu trnh bin dch v cho php modules c gn tham s. input , output, inout chiu v rng ca mt port. Net y l loi d liu dng cho vic kt ni hoc Nhng loi d liu ny nh ngha
wire trong phn cng vi s phn tch khc nhau. Reg y l loi d liu tru tng ging nh l mt
Lm c Khi
Page 40
tr hon v thi gian m phng. Integer Real Event bt tch cc. Nhng loi d liu ny tt c c th c khai bo mc module. Nhng m t khc trong Verilog vi nhng kh nng to lp mc ch bao gm nhng tc v, nhng hm v nhng khi begin-end c t tn. Nets c iu khin khng theo hnh vi (non-behaviorally) nn do n khng th c khai bo cho nhng mc ch khc. Tt c nhng loi d liu khc c th c th hin trong nhng tc v v trong nhng khi beginend.
3.3.2 V d
y l loi d liu s nguyn. y l loi d liu floating point hay s thc y l d liu ch ra rng mt c hiu c
input i1, i2; reg [63:0] data; time simtime; Dng u tin trong v d trn l mt dng khai bo input, dng th hai l mt khai bo d liu data reg 64 bit. Dng cui cng l khai bo cho mt bin c t tn l simtime.
3.3.3 C php
Net l mt trong nhiu loi d liu trong ngn ng m t Verilog dng m t dy kt ni vt l trong mch in. Net s kt ni nhng linh kin mc cng c gi ra, nhng module c gi ra v nhng php gn ni tip. Ngn ng Verilog cho php c gi tr t mt net t bn trong nhng m t hnh vi, nhng ta khng th gn mt gi tr t mt net bn trong nhng m t hnh vi. ( Mt khi always l mt loi c bit ca khi beginend). Mt net s khng lu gi gi tr ca n. N phi c iu khin bi mt trong hai cch sau.
Lm c Khi
Page 42
Nhng loi net khc nhau c nh ngha trong Verilog c m t bn di v trong nhng bng hnh 2.1 s tm tt chc nng ca chng. S phn gii l mt qui nh phn gii nhng gi tr vi nhng b iu khin sau cng c gii thch trong bng trang k.
Wire mt net vi gi tr 0,1,x v s phn gii c da trn s tng ng. Wand mt net vi gi tr 0,1,x v s phn gii ca wired and Wor Tri Tri0 mt net vi gi tr 0,1,x v s phn gii ca wired or mt net vi gi tr 0,1,x,z v s phn gii ca bus tri-state mt net vi gi tr 0,1,x,z v s phn gii ca bus tri-state v mt gi tr
mc nh l 0 khi khng c iu khin Tri1 mt net vi gi tr 0,1,x,z v s phn gii ca bus tri-state v mt gi tr
mc nh l 1 khi khng c iu khin Trior mt net vi gi tr 0,1,x,z v s phn gii ca tri-state cho gi tr z-non-z s dng hm or ca gi tr non-z Triand mt net vi gi tr 0,1,x,z v s phn gii ca tri-state cho gi tr z-non-z s dng hm and ca gi tr non-z Trireg mt net vi gi tr 0,1,x,z v s phn gii ca tri-state cng vi gi tr lu tr in tch (gi tr trc c dng phn gii gi tr mi) Supply0, supply1 (gnd v vdd)
tri/wire 0 1 X Z
0 0 X X 0
1 X 1 X 1
X X X X X
Z 0 1 X X
triand/wand 0 0 Lm c Khi 0
1 0
X 0
Z 0 Page 43
trior/wor 0 1 X Z
0 0 1 X 0
1 1 1 1 1
X X 1 X X
Z 0 1 X Z
tri1 0 1 X Z
0 0 X X 0
1 X 1 X 1
X X X X X
Z 0 1 X 1
tri0 0 1 X Z
0 0 X X 0
1 0 1 X 1
X 0 X X X
Z 0 1 X 0
trireg 0 1 X Z
0 0 1 X 0
1 1 1 1 1
X X 1 X X
Z 0 1 X P
Lm c Khi
Page 44
Loi d liu wire nh ngha mt loi n gin l kt ni gia hai linh kin. D liu wire dng cho nhng net m c iu khin bi mt cng linh kin n hay trong php gn ni tip (continuous assignments). Trong v d 2.3, nhng khai bo 2-wire c to ra. Khai bo u tin m t wire n ( scalar wire ) w. Khai bo th hai m t mt mng (vector) w2 vi 3 bits. Bit trng s cao nht (MSB) ca n c trng s l 2 v bit trng s thp nht (ISB) c trng s l 0. V d 2.3 wire w1; wire [2:0] w2;
3.4.3 Tri net
D liu tri th hon ton ging vi d liu wire v c php s dng v chc nng tuy nhin n khc vi d liu wire ch, d liu tri c dng cho nhng net c iu khin bi nhiu cng linh kin ng ra. Loi d liu tri (tri-state) l loi d liu c bit ca wire trong s phn gii gi tr ca net c iu khin bi nhiu linh kin iu khin c thc hin bng vic s dng nhng qui lut ca bus tri-state. Tt c cc bin m iu khin net tri phi c gi tr Z (tng tr cao), ngoi tr mt bin. Bin n ny xc nh gi tr ca net tri. Trong v d 2.6, ba bin iu khin bin out. Chng c thit lp trong module khc ch mt linh kin iu khin tch cc trong mt thi im.
Lm c Khi
Page 45
// thit lp tt c cc bin c gi tr Z
Wired nets bao gm nhng loi d liu wor, wand, trior v triand. Chng c dng m hnh gi tr logic ca net. Nhng wired net trn c
Lm c Khi University of Information Technology Page 47
Wand/triand l loi d liu c bit ca wire dng hm and tm gi tr kt qu khi nhiu linh kin iu khin mt net, hay ni cch khc nu c bt k ng ra linh kin iu khin no c gi tr 0 th gi tr ca net c iu khin s l 0. Trong v d 2.4, hai bin iu khin bin c. Gi tr ca out c xc nh bng hm logic and gia i1 v i2. V d 2.4 Module wand_test (out, i1, i2); Input i1, i2; Ouput out; Wand out; Assign out = i1; Assign out = i2; Endmodule Ta c th gn mt gi tr tr hon trong khai bo wand, v ta c th s dng nhng t kha n (scalar) v mng (vector) cho vic m phng.
Lm c Khi
Page 48
Loi d liu wor /trior l loi d liu c bit ca wire dng hm or tm gi tr kt qu khi nhiu linh kin iu khin mt net, hay ni cch khc nu c bt k ng ra linh kin iu khin no c gi tr 1 th gi tr ca net c iu khin s l 1. Trong v d 2.5, hai bin iu khin bin c. Gi tr ca out c xc nh bng hm logic OR gia i1 v i2. V d 2.5 module wor_test(i1, i2); input i1, i2; ouput out; wor out; assign out = i1; assign out = i2; endmodule
3.4.5 Unresolved nets 3.4.6 Trireg net
Net trireg c dng m hnh gi tr in dung lu gi trn net ca mch in, n c kh nng lu gi gi tr in tch. Mt trireg c th l mt trong hai trng thi sau:
Lm c Khi
Page 49
d= x c0=x c1=x d0=x d1=x i1=x i2=x d= 1 c1=1 c1=1 d0=1 d1=1 i1=1 i2=1
University of Information Technology Page 51
Net tri0 v tri1 dng m hnh nhng net vi linh kin in tr ko ln hoc ko xung. Mt net tri0 s tng ng vi mt net vi c iu khin lin tc bi gi tr 0 vi mnh pull. Mt net tri1 s tng ng vi mt net vi c iu khin lin tc bi gi tr 1 vi mnh pull. Khi khng c linh kin iu khin net tri0, gi tr ca n vn l 0 vi mnh pull. Khi khng c linh kin iu khin net tri1, gi tr ca n vn l 1 vi mnh pull. Khi c nhiu linh kin iu khin net tri0 hoc tri1 th s phn gii mnh ca cc linh kin iu khin vi mnh pull ca net tri0 hoc tri1 s xc nh gi tr ca net.
3.4.8 Supply0/supply1 nets
Loi d liu supply0 v supply1 nh ngha nhng net wire c mc c nh n mc logic 0 (ni t, vss) v logic 1 ( ngun cung cp, vdd). Vic s dng supply0 v supply1 tng t nh khai bo mt wire v sau gn gi tr 0 hoc 1 ln n. Trong v d 2.7, power c ni ln ngun cung cp (lun l logic 1 c mnh ln nht) v gnd c ni n t (ground) ( lun l logic 0 c mnh nht). V d 2.8 Supply0 gnd; Supply1 power;
Lm c Khi
Page 52
Trong thc t bt k net no trong mch in t cng to ra tr hon trn net. Trong Verilog, tr hon c th c khai bo kt hp trong pht biu khai bo net. Nhng gi tr tr hon ny l thi gian tr hon c tnh t khi tn hiu ti ng ra ca linh kin iu khin thay i cho n khi tn hiu trn net thc s thay i. tr hon c m t bi s hoc biu thc theo sau biu tng #. Nhng gi tr ny l hng s, tham s, biu thc ca chng hay c th l nhng biu thc ng dng nhng bin s khc. tr hon c th l rise, fall, hay hold (thi gian thay i n z) v mi loi tr hon ny c th c ba gi tr - minimum, typical v maximum. S m t tr hon rise, fall, v hold c phn bit bi du phy (,) v s m t min-typ-max c phn bit bi du hai chm (:). tr hon rise bao gm thi gian tr hon khi gi tr tn hiu thay i t 0 ln 1, 0 n x v t x n 1. tr hon fall bao gm thi gian tr hon khi gi tr tn hiu thay i t 1 xung 0, 1 n x v t x n 0. tr hon hold bao gm thi gian tr hon khi gi tr tn hiu thay i t 0 ln z, 1 n z v t x n z. Khi nim tr hon ny cng c dng cho vic nh ngha tr hon ca cng, transistor, linh kin c bn do ngi dng t nh ngha v nhng m t hnh vi.
3.4.9.2 V d
Tri #5 t1, t2; Wire #(10,9,8) w1, w2; Wand #(10:8:6, 9:8:6) w3;
Lm c Khi
Page 53
delay ::= delay2 | delay 3 delay3 [,delay_value]]) delay2 ::= #delay_value | #( delay_value [,delay_value]) delay_value ::= unsigned_number | parameter_identifier | (mintypmax_expression [,mintypmax_expression] ::= #delay_value | #( delay_value [,delay_value
[,mintypmax_expression])
3.4.10 C php khai bo net
net_declaration ::= NETTYPE [expandrange] [delay] list_of_net_ identifiers; | trireg [charge_strength] [expandrange] [delay] list_of_ net_ identifiers; | NETTYPE [drive_strength] [expandrange] [delay] list_of_net_decl_assignments ;
Lm c Khi University of Information Technology Page 54
supply1 | wor | trior | trireg expandrange ::= range | scalared range | vectored range charge_strength ::= ( small ) | (medium) | (large) Trong nh ngha c php trn, mc t la chn expandrange dng nh ngha vector v n c gii thch trong mc 2.7.2. Biu thc tr hon c nh ngha trong mc 2.12. S m t mnh ca linh kin iu khin s c tho lun trong mc cp v m hnh mc cng transistor trong chng 17.
3.4.11 V d
Lm c Khi
Page 55
Khai bo reg c thc hin cho tt c nhng tn hiu m c iu khin t nhng m t hnh vi. Loi d liu reg lu gi mt gi tr c cho n khi n c gn mt gi tr mi trong mt m t tun t (khi intitial hoc always). Loi d liu reg th c mc tru tng hn so vi loi d liu net nhng n c quan h mt thit vi khi nim thanh ghi (register) vi kh nng lu gi gi tr v c th c xem nh l mt register trong phn cng. Tuy nhin, chng cng c th c xem nh l wire hoc phn t nh tm thi m khng phi l phn t thc trong phn cng, iu ny ph thuc vo vic s dng chng bn trong khi m t hnh vi.
3.5.2 V d
reg_declaration ::= reg [range] list_of_register_ identifiers; list_of_ register_ identifiers ::= register _ identifier , { register _ identifier } 3.6 Khai bo port
3.6.1 Gii thiu
Ta phi khai bo tht tng minh v chiu (input, output hay bidirectional) ca mi port xut hin trong danh sch khai bo port. Trong Verilog nh ngha ba loi port khc nhau, l input, output v inout. Loi d liu ca port c th l net hoc reg. Loai d liu reg ch c th xut hin port output. Hng s v biu thc lun nm pha di khai bo port. input: tt c port input ca mt module c khai bo vi mt pht biu input. Loi d liu mc nh ca input port l wire v c iu khin bi c php ca wire. Ta c th khai bo rng ca mt input nh mt mng (vector) ca nhng tn hiu, ging nh input b trong v d di. Nhng pht biu input c th xut hin bt c v tr no trong m t thit k nhng chng phi c khai bo trc khi chng c s dng. V d: input a; input [2:0] b; output: tt c port output ca mt module c khai bo vi mt pht biu output. Nu khng c mt loi d liu khc nh l reg, wand,
Lm c Khi University of Information Technology Page 57
V d 2.11: module fulladder(cOut, sum, aIn, bIn, cIn); input aIn, bIn, cIn; output cOut, sum;
Lm c Khi
Page 58
list_of_ports ::= ( port {,port }) port ::= [port_expression] | . port_identifier ( [port_expression] ) port_expression ::= port_reference | { port_reference ,port_reference } port_reference ::= port_identifier | port_identifier[ constant_expression ] | port_identifier [ msb_constant_expression :lsb_constant_expression ]
Lm c Khi University of Information Technology Page 59
Verilog ch h tr khai bo mng mt v hai chiu. Nhng mng mt chiu c gi l bit-vectors v n c th l loi d liu net hoc reg. Nhng mng hai chiu c gi l nhng phn t nh v l loi d liu reg. Ta c th nh ngha rng cho tt c cc loi d liu c trnh by trong chng ny. Vic nh ngha rng cung cp mt cch to ra mt bit-vector. C php ca mt m t rng l [msb:lsb]. Nhng biu thc ca msb ( bit c trng s ln nht) v lsb (bit c trng s nh nht) phi l nhng biu thc c gi tr hng khc 0. Nhng biu thc c gi tr hng ch c th to nn bi nhng hng s, nhng tham s ca Verilog v cc ton t. Khng c gii hn trong vic nh ngha rng ti a ca mt bit-vector trong Verilog, tuy nhin vic gii hn ny c th s ph thuc vo cng c m phng, tng hp, hoc nhng cng c khc.
3.7.2 Mng net
V d 2.12: wire [63:0] system_bus v d 2.12 m t vic khai bo mt wire c rng 64 bits. V d 2.13: wire vectored [31:0] bus1; wire scalared [31:0] bus2;
Lm c Khi
Page 60
Lm c Khi
Page 61
Lm c Khi
Page 62
Lm c Khi
Page 63
Lm c Khi
Page 64
Thm vo kh nng m hnh ha cho phn cng trong Verilog, ta c th s dng thm mt s bin d liu khc ngoi bin d liu reg. Mc d bin d liu reg c th c dng cho nhng chc nng tng qut nh m thi gian, lu gi s thay i gi tr ca net, bin d liu integer v time th cung cp s thun li v d c hiu hn trong vic m t thit k.
3.8.2 Integer 3.8.2.1 Gii thiu
Loi d liu integer l bin c chc nng tng qut c dng tnh ton s lng. N khng c xem nh l thanh ghi trong phn cng thit k. Loi d liu integer gm 32 bit v n c th c gn v s dng hon ton ging nh loi bin d liu reg. Php gn qui trnh (procedural assignment) c dng kch s thay i gi tr ca loi d liu integer. Nhng php tnh trn bin d liu integer s to ra nhng kt qu di dng b 2. V d 2.16: Integer i1, i2;
3.8.2.2 C php
Lm c Khi
Page 65
Bin d liu time c rng 64 bit v ny thng c dng lu gi gi tr output ca hm h thng $time hoc tnh ton thi gian chy m phng trong nhng trng hp m vic kim tra nh thi l bt buc hoc cho nhng mc ch d tm v pht hin li ca thit k trong qu trnh m phng. Loi d liu time c th c gn v s dng hon ton ging nh loi bin d liu reg. Php gn qui trnh (procedural assignment) c dng kch s thay i gi tr ca loi d liu time V d 2.17: time t1, t2;
3.8.3.2 C php
Bn cnh bin d liu integer v time, Verilog cn c h tr vic s dng hng s thc v bin d liu thc (real). Ngoi tr nhng ngoi l nh trnh by pha di th bin d liu real c th c s dng tng t nh integer v time.
Lm c Khi
Page 66
nhng s thc.
thc hin dng chun nh dng IEEE floating point. Bin d liu c gi tr mc nh l 0.
Thi gian thc (realtime) c khai bo v s dng tng t nh s thc (real). Chng c th hon i cho nhau. V d 2.18: real float; realtime rtime;
3.8.4.2 C php
real_declaration
Lm c Khi
Page 67
Trong Verilog HDL, loi d liu tham s (parameter) khng thuc loi d liu bin (variables: reg, integer, time, real, realtime) cng nh loi d liu net. D liu tham s khng phi l bin m chng l hng s. C hai loi tham s: tham s module (module parameter), v tham s c t (specify parameter). Vic khai bo trng tn gia net, bin hay tham s l khng c php. C hai loi tham s trn u c php khai bo rng. Mc nh, parameters v specparams s c rng cha gi tr ca hng s, ngoi tr khi tham s c khai bo rng.
3.9.2 Tham s module (module parameter)
Gi tr ca khai bo parameter trong mt module c th c thay i t bn ngoi module bng pht biu defparam hoc pht biu gi instance ca module . Thng thng khai bo parameter c dng m t nh thi hoc rng ca bin.
Lm c Khi University of Information Technology Page 68
parameter_declaration ::= parameter [ signed ] [ range ] list_of_param_assignments | parameter parameter_type list_of_param_assignments parameter_type ::= integer | real | realtime | time list_of_param_assignments ::= param_assignment { , param_assignment } param_assignment ::= parameter_identifier = constant_mintypmax_expression range ::= [ msb_constant_expression : lsb_constant_expression ]
3.9.2.1.3 V d
parameter msb = 7; // nh ngha tham s msb c gi tr hng s l 7 parameter e = 25, f = 9; // nh ngha hai hng s parameter r = 5.7; // khai bo r l mt hng s thc parameter byte_size = 8,
Lm c Khi
Page 69
Mt tham s module c th c m t loi d liu v m t rng. S tc ng ca gi tr tham s mi khi n ln gi tr ca tham s c khai bo ban u trong module vi m t loi d liu v m t rng s tun theo nhng qui lut sau:
Mt khai bo tham s m khng m t loi d liu v rng s c loi
d liu v rng mc nh ca gi tr cui cng c gn vo tham s . Mt khai bo tham s m khng m t loi d liu m ch m t rng
th rng ca tham s s khng i, cn loi d liu s l unsigned khi gi tr mi c ln. Mt khai bo tham s m ch m t loi d liu m khng m t rng
Page 70
Trong Verilog c hai cch thay i gi tr ca tham s c khai bo bi parameter : mt l pht biu defparam, vi pht biu ny n s cho php gn gi tr mi vo tham s trong module bng cch dng tn gi mt cch phn cp, hai l php gn gi tr tham s khi gi instance ca module , bng cch ny s cho php thay i gi tr tham s trong cng mt dng vi vic gi instance ca module .
S dng pht biu defparam, gi tr tham s c th c thay i bn trong instance ca module thng qua vic s dng tn phn cp ca tham s. Tuy nhin, pht biu defparam c m t trong mt instance hoc mt dy cc instance th s khng lm thay i gi tr tham s trong nhng instance khc ca cng mt module. Biu thc bn phi ca php gn defparam l biu thc hng s ch bao gm s v nhng tham s tham chiu c khai bo trc trong cng module vi pht biu defparam. Pht biu defparam c bit hu dng v ta c th nhm tt c cc php gn thay i gi tr cc tham s ca cc module khc nhau ch trong mt module. Trong trng hp c nhiu pht biu defparam cho mt tham s duy nht th gi tr tham s s ly gi tr ca pht biu defparam sau cng.
Lm c Khi University of Information Technology Page 71
Trong Verilog c mt phng php khc dng gn gi tr n mt tham s bn trong instance ca mt module l s dng mt trong hai dng ca php gn gi tr tham s trong instance ca module. Mt l php gn theo th t danh sch tham s, hai l php gn bi tn. Hai dng php
Lm c Khi
Page 73
Th t ca nhng php gn trong php gn gi tr tham s theo th t danh sch tham s instance ca module s theo th t tham s lc khai bo bn trong module. N khng cn thit phai gn gi tr cho tt c cc tham s c bn trong module khi dng phng php ny. Tuy nhin, ta khng th nhy qua mt tham s. Do , gn nhng gi tr cho mt phn nhng tham s trong tt c cc tham s khai bo trong module th nhng php gn thay th gi tr ca mt phn nhng tham s s ng trc nhng khai bo ca nhng tham s cn li. Mt phng php khc l phi gn gi tr cho tt c cc tham s nhng dng gi tr mc nh (cng c gi tr nh c gn trong khai bo tham s trong nh ngha module) cho cc tham s m khng cn c gi tr mi.
Lm c Khi University of Information Technology Page 74
Php gn gi tr tham s bi tn bao gm tn tng minh ca tham s v gi tr mi ca n. Tn ca tham s s l tn c m t trong instance ca module.
Lm c Khi
Page 77
Trong Verilog, tham s cc b (localparam) ging tng t vi tham s (parameter) ngoi tr l n khng th c gn li gi tr bi pht biu defparam hoc php gn gi tr tham s khi gi instance ca module. Nhng tham s cc b (localparam) c th c gn bi nhng biu thc hng s cha nhng tham s (parameter) m nhng tham s (parameter) ny c th c gn li gi tr bi pht biu defparam hoc php gn gi tr tham s khi gi instance ca module.
Lm c Khi University of Information Technology Page 81
local_parameter_declaration ::= localparam [ signed ] [ range ] list_of_param_assignments | localparam parameter_type list_of_param_assignments parameter_type ::= integer | real | realtime | time list_of_param_assignments ::= param_assignment { , param_assignment } param_assignment ::= parameter_identifier = constant_mintypmax_expression range ::= [ msb_constant_expression : lsb_constant_expression ]
3.9.4 c t tham s (specify parameter) 3.9.4.1 Gii thiu
T kha specparam khai bo n l mt loi c bit ca tham s (parameter) ch dng cho mc ch cung cp gi tr nh thi (timing) v gi tr tr hon (delay), nhng n c th xut hin trong bt k biu thc no
Lm c Khi University of Information Technology Page 82
Cn c khai bo bn trong mt Cn c khai bo bn ngoi nhng module hoc mt khi c t ( khi c t ( specify block) specify block) C th c dng bn trong mt Khng th c dng bn trong
Lm c Khi
Page 83
(specparam) v tham s module specparams. (parameter). S dng tp tin d liu SDF gn Dng pht biu defparam hoc php gi tr cho tham s c t. gn gi tr tham s cho instance ca module gn gi tr cho tham s.
Mt tham s c t (specify parameter) c th c m t rng. rng ca nhng tham s c t cn tun theo nhng qui lut sau:
Mt khai bo tham s c t m khng c m t rng th mc nh s l rng ca gi tr cui cng c gn n n, sau khi c bt k gi tr no gn ln n. Mt khai bo tham s c t m c m t rng th rng ca n s theo rng khai bo. rng s khng b nh hng bi bt k gi tr no c gn ln n.
Vic chn bit hay mt phn ca tham s cc b m loi d liu ca n khng phi l real th c php. V d: specify specparam tRise_clk_q = 150, tFall_clk_q = 200;
Lm c Khi University of Information Technology Page 84
END
Lm c Khi University of Information Technology Page 85
Lm c Khi
Page 86