intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình lập trình Verilog Tiếng Việt 2

Chia sẻ: Cinny Cinny | Ngày: | Loại File: PDF | Số trang:6

253
lượt xem
88
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trình tự nghĩa là các câu lệnh được thực hiện theo trình tự nhất định: trên xuống. Quyết định là sự qui định sẽ thực hiện chương trình như thế nào phụ thuộc vào sự thoả mãn các điều kiện nhất định. Vòng lặp thể hiện sự thực hiện có tính lặp một số đoạn lệnh của chương trình khi các điều kiện nào đó vẫn được thỏa mãn

Chủ đề:
Lưu

Nội dung Text: Giáo trình lập trình Verilog Tiếng Việt 2

  1. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog Chöông IV CAÙC DAÏNG DÖÕ LIEÄU I. Ñaët giaù trò: Verilog bao goàm 4 giaù trò cô baûn. Haàu heát caùc daïng döõ lieäu Verilog chöùa caùc giaù trò sau: 0: möùc logic 0, hoaëc ñieàu kieän sai. 1: möùc logic 1, hoaëc ñieàu kieän ñuùng. X: möùc logic tuyø ñònh Z: traïng thaùi toång trôû cao. X vaø Z duøng coù giôùi haïn trong toång hôïp (synthesis) II. Wire: Moâ taû vaät lieäu ñöôøng daây daãn trong moät maïch ñieän vaø ñöôïc duøng ñeå keát noái caùc coång hay caùc module. Giaù trò cuûa Wire coù theå ñoïc, nhöng khoâng ñöôïc gaùn trong haøm (function) hoaëc khoái (block). Wire khoâng löu tröõ giaù trò cuûa noù nhöng vaãn phaûi ñöôïc thöïc thi bôûi 1 leänh gaùn keá tieáp hay bôûi söï keát noái Wire vôùi ngoõ ra cuûa 1 coång hoaëc 1 module. Nhöõng daïng ñaëc bieät khaùc cuûa Wire: Wand(wired_and): giaù trò phuï thuoäc vaøo möùc logic And toaøn boä boä ñieàu khieån keát noái ñeán Wire. Wor (wired_or): giaù trò phuï thuoäc vaøo möùc logic Or toaøn boä boä ñieàu khieån keát noái ñeán Wire. Tri(three_state): taát caû boä ñieàu khieån keát noái ñeán 1 tri phaûi ôû traïng thaùi toång trôû cao. 1. Cuù phaùp: Wire [msb:lsb] teân bieán wire. Wand [msb:lsb] teân bieán wand. Wor [msb:lsb] teân bieán wor. Tri [msb:lsb] teân bieán tri. 2. Ví duï: GV: Nguyeãn Troïng Haûi Trang 6
  2. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog Wire c; Wand d; Assign d= a; Assign d= b;// giaù trò d laø möùc logic cuûa pheùp And a vaø b. Wire [9:0] A; // vectô A coù 10 wire. III. Reg: Reg (register) laø moät ñoái töôïng döõ lieäu maø noù chöùa giaù trò töø moät thuû tuïc gaùn keá tieáp. Chuùng chæ ñöôïc duøng trong haøm vaø khoái thuû tuïc. Reg laø moät loaïi bieán Verilog vaø khoâng nhaát thieát laø thanh ghi töï nhieân. Trong thanh ghi nhieàu bit, data ñöôïc löu tröõ baèng nhöõng chöõ soá khoâng daáu vaø khoâng coù kí hieäu ñuoâi môû roäng, ñöôïc thöïc hieän maø ngöôøi söû duïng coù chuû y ùlaø soá buø hai. 1. Cuù phaùp: Reg [msb:lsb] teân bieán reg. 2. Ví duï: Reg a; // bieán thanh ghi ñôn giaûn 1 bit. Reg [7:0] A; // moät vectô 8 bit; moät bank cuûa 8 thanh ghi. Reg [5:0]b, c; // hai bieán thanh ghi 6 bit. IV. Input, Output, Inout: Nhöõng töø khoaù naøy bieåu thò ngoõ vaøo, ngoõ ra, vaø port hai chieàu cuûa moät module hoaëc task. Moät port ngoõ ra coù theå ñöôïc caáu hình töø caùc daïng: wire, reg, wand, wor, hoaëc tri. Maëc ñònh laø wire. 1. Cuù phaùp: Input [msb:lsb] port ngoõ vaøo. Output [msb:lsb] port ngoõ ra. Inout [msb:lsb] port ngoõ vaøo,ra hai chieàu. 2. Ví duï: Module sample (b, e, c, a); Input a; // moät ngoõ vaøo maëc ñònh laø kieåu wire. Output b, e; // hai ngoõ ra maëc ñònh laø kieåu wire. Output [1:0] c; /* ngoõ ra hai bit, phaûi ñöôïc khai baùotrong moät leänh rieâng*/ Reg [1:0] c; // ngoõ c ñöôïc khai baùo nhö moät reg. GV: Nguyeãn Troïng Haûi Trang 7
  3. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog V. Integer (Soá nguyeân): Integer laø moät bieán ña naêng. Trong toång hôïp chuùng ñöôïc duøng chuû yeáu cho voøng laëp, tham soá, vaø haèng soá. Chuùng hoaøn toaøn laø reg. Tuy nhieâu chuùng chöùa döõ lieäu baèng nhöõng soá coù daáu, trong khi ñoù khai baùo daïng reg chöùa chung baèng soá khoâng daáu. Neáu chuùng chöùa nhöõng soá maø khoâng ñònh nghóa thôøi gian bieân dòch thì kích thöôùc maëc ñònh laø 32 bit. Neáu chuùng chöùa haèng, söï toång hôïp ñieàu chænh caùc soá coù kích thöôùc nhoû nhaát caàn thieát cho söï bieân dòch. 1. Cuù phaùp: Integer teân bieán nguyeân; …teân haèng nguyeân…; 2. Ví duï: Integer a; // soá nguyeân ñôn giaûn 32bit. Assign b= 63; // maëc ñònh laø moät bieán 7 bit. VI. Supply 0, Supply1: Xaùc ñònh choå ñöôøng daãn leân möùc logic 0 ( ñaát), logic 1( nguoàn) theo thöù töï ñònh saün. VII. Time: Time laø moät löôïng 64 bit maø ñöôïc söû duïng cuøng vôùi $time, heä thoáng thao taùc chöùa löôïng thôøi gian moâ phoûng. Time khoâng ñöôïc hoã trôï toång hôïp vaø vì theá chæ ñöôïc duøng trong muïc ñích moâ phoûng. 1. Cuù phaùp: Time bieán time; 2. Ví duï: Time c; c = $time; // c = thôøi gian moâ phoûng doøng ñieän. VIII. Parameter (Tham soá): Moät Parameter xaùc ñònh 1 haèng soá maø ñöôïc ñaët khi baïn cho ví duï cuï theå laø moät module. Caùc naøy cho pheùp ta coù theå söûa chöõa. 1. Cuù phaùp: Parameter par_1= gaùi trò, par_2= gaùi trò, …; Parameter [giôùi haïn] par_3 = giaù trò; 2. Ví duï: GV: Nguyeãn Troïng Haûi Trang 8
  4. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog Parameter add = 2b’00, sub = 3b’111; Parameter n = 4; Parameter [3:0] par_2 = 4b’1010; … reg [n-1:0] harry;// moät thanh ghi 4 bít maø ñoä roäng ñöôïc ñaët bôûi tham soá n ôû treân. always @(x) y = {{(add - sub) {x}}} if (x) begin state = par_2[1]; else state =par_2[2]; end. GV: Nguyeãn Troïng Haûi Trang 9
  5. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog ChöôngV TOAÙN TÖÛ I. Toaùn töû soá hoïc: Nhöõng toaùn töû naøy thöïc hieän caùc pheùp tính soá hoïc. Daáu ’+’ vaø ’-’ coù theå ñöôïc söû duïng moät trong hai toaùn töû ñôn (-z) hoaëc keùp (x - y). 1. Toaùn töû: +, -, *, /, %. 2. Ví duï: parameter n = 4; Reg[3:0] a, c, f, g, count; f= a +c; g= c –n; count = (count +1) % 16; // coù theå ñeám töø 0 ñeán 15. II. Toaùn töû quan heä: Toaùn töû quan heä so saùnh hai toaùn haïng vaø traû veà moät ñôn bit laø 0 hoaëc 1. Nhöõng toaùn töû naøy toång hôïp vaøo duïng cuï so saùnh. Bieán Wire vaø Reg laø nhöõng bieán döông. Vì theá, (-3b001) = (3b111) vaø (-3b001) > ( 3b110) nhöng neáu laø soá nguyeân thì -1< 6. 1. Caùc toaùn töû quan heä: =, = =, !=. 2. Ví duï: If (x= =y) e =1; Else e= 0; // so saùnh hai vector a, b reg [3:0] a, b; if (a[3] = =b [3]) a[2:0] >b[2:0]; else b[3]; GV: Nguyeãn Troïng Haûi Trang 10
  6. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog III. Toaùn töû bit_wire: So saùnh töøng bit hai toaùn toaùn haïng. 1. Caùc toaùn töû: ~ (bitwire NOT), & (bitwire AND), | (bitwire OR), ^ (bitwire XOR), ~^ hoaëc ^~ (bitwire XNOR). 2. Ví duï: Module and2(a, b, c); Input [1:0] a, b; Output [1:0] c; Assign c = a & b; Endmodule IV. Toaùn töû logic: Toaùn töû logic traû veà 1 bit ñôn 0 hoaëc 1. chuùng gioáng nhö toaùn töû bitwire chæ laø nhöõng toaùn haïng ñôn bit. Chuùng coù theå laøm vieäc treân bieåu thöùc, soá nguyeân hoaïc nhoùm bit, vaø coi nhu taát caû caùc giaù trò khoâng baèng 0 laø ’1’. Toaùn töû logic ñöôïc duøng nhieàu trong leänh ñieàu kieän (if… else), khi chuùng laøm vieäc treân bieåu thöùc. 1. Toaùn töû: !(NOT), && (AND), || (OR) 2. Ví duï: Wire [7:0] x, y, z; Reg a; … if ((x= = y)&&(z)) a=1; else a=! x; V. Toaùn töû bieán ñoåi: Coù taùc duïng treân taát caû caùc bit cuûa moät vectô toaùn haïng vaø traû veà giaù trò ñôn bit. Nhöõng toaùn töû naøy laø hình thöùc töï ñoåi soá cuûa caùc toaùn töû bitwire ôû treân. 1. Caùc toaùn töû: ~ (bieán ñoåi NOT), & (bieán ñoåi AND), ~&( bieán ñoåi NAND), | (bieán ñoåi OR), ~| (bieán ñoåi NOR), ^ (bieán ñoåi XOR), ~^ hoaëc ^~ (bieán ñoåi XNOR). 2. Ví duï: GV: Nguyeãn Troïng Haûi Trang 11
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2