intTypePromotion=1
ADSENSE

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

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

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

Lập trình hướng cấu trúc đã trở nên rất phổ biến trong những năm 80 và đầu những năm 90, nhưng do những hạn chế và những nhược điểm rõ ràng khi lập trình hệ thống lớn, lập trình hướng cấu trúc đã dần bị thay thế cho phương pháp lập trình hướng đối tượng.

Chủ đề:
Lưu

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

  1. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog assign c = a&b; endmodule // module instantiations wire [3:0] in1, in2; wire [3:0] o1, o2; // ñaët vò trí and4 C1(in1, in2,o1); // teân and4 C2(.c(o2), .a(in1), .b(in2)); GV: Nguyeãn Troïng Haûi Trang 18
  2. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog Chöông VIII KHUOÂN MAÃU HAØNH VI (BEHAVIORAL) Verilog coù 4 möùc khuoân maãu: • Chuyeån maïch. Khoâng ñöôïc ñeà caäp ñeán ôû ñaây. • Coång. • Möùc traøn döõ lieäu. • Haønh vi hoaëc thuû tuïc ñöôïc ñeà caäp ôû beân döôùi Caùc leänh thuû tuïc Verilog ñöôïc duøng taïo moät maãu thieát keá ôû möùc cao hôn. Chuùng chæ ra nhöõng caùch thöùc maïnh cuûa veäc laøm ra nhöõng thieát keá phöùc taïp. Tuy nhieân, nhöõng thay ñoåi nhoû n phöông phaùp maõ hoùa coù theå gay ra bieán ñoåi lôùn trong phaàn cöùng. Caùc leänh thuû tuïc chæ coù theå ñöôïc duøng trong nhöõng thuû tuïc. I. Nhöõng chæ ñònh theo thuû tuïc: Laø nhöõng chæ ñònh duøng trong phaïm vi thuû tuïc Verilog (khoái always vaø initial). Chæ bieán reg vaø integers (vaø choïn ñôn bit/ nhoùm bit cuûa chuùng, vaø keát noái thoâng tin) coù theå ñöôïc ñaët beân traùi daáu ‘=’ trong thuû tuïc. Beân phaûi cuûa chæ ñònh laø moät bieåu thöùc maø coù theå duøng baát cöù daïng toaùn töû naøo. II. Delay trong chæ ñònh: Trong chæ ñònh treã ∆t laø khoaûng thôøi gian traûi qua tröôùc khi moät leänh ñöôïc thöïc thi vaø beân traùi leänh gaùn ñöôïc taïo ra. Vôùi nhieàu chæ ñònh treã (intra-assignment delay), beân phaûi ñöôïc ñònh giaù trò tröïc tieáp nhöng coù moät delay cuûa ∆t tröôùc khi keát quaû ñöôïc ñaët beân traùi leänh gaùn. Neáu theâm moät quaù trình thay ñoåi nöõa caïnh beân phaûi tín hieäu trong khoaûng thôi gian ∆t,thì khoâng cho keát quaû ôû ngoõ ra. Delay khoâng ñöôïc hoã trôï bôûi caùc coâng cuï. 1. Cuù phaùp chæ ñònh thuû tuïc: Bieán = bieåu thöùc; Chæ dònh treã: GV: Nguyeãn Troïng Haûi Trang 19
  3. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog #∆t bieán = bieåu thöùc; intra_assignment delay: bieán = #∆t bieåu thöùc. 2. Ví duï: Reg [6:0] sum; reg h, zilch; Sum[7] = b[7]^c[7]; // thöïc thi töùc thôøi; Ziltch = #15 ckz & h; // ckz & h ñònh giaù trò töùc thôøi; ziltch thay ñoåi sau 15 ñôn vò thôøi gian. #10 hat = b & c;/* 10 ñôn vò thôøi gian sau khi ziltch thay ñoåi, b & c ñöôïc ñònh giaù vaø hat thay ñoåi*/ III. Chæ ñònh khoái: Chæ ñònh khoái (=) thöïc hieän lieân tuïc trong thöù töï leänh ñaõ ñöôïc vieát. Chæ ñònh thöù hai khoâng ñöôïc thöïc thi neáu nhö chæ ñònh ñaàu cho hoaøn thaønh. 1. Cuù phaùp: Bieán = bieåu thöùc; Bieán = #∆t bieåu thöùc; #∆t bieán = bieåu thöùc; 2. Ví duï: Initial Begin a = 1; b = 2; c = 3; #5 a = b + c; // sau 5 ñôn vò thôøi gian thöïc hieän a = b + c = 5. d = a; // d = a = 5. Always @(posedge clk) Begin Z = Y; Y = X; // thanh ghi dòch. y = x; z = y; // flip flop song song. IV. Begin …end: Leänh khoái begin … end ñöôïc duøng ñeå nhoùm moät vaøi leänh maø moät leänh cuù phaùp ñöôïc cho pheùp. Bao goàm function, khoái always vaø khoái initial. Nhöõng khoái naøy coù theå ñöôïc tuøy yù goïi teân. Vaø bao goàm khai baùo reg, integer, tham soá. GV: Nguyeãn Troïng Haûi Trang 20
  4. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog 1. Cuù phaùp: Begin: teân khoái Reg[msb:lsb] danh saùch bieán reg; Integer [msb:lsb] danh saùch integer; Parameter [msb:lsb] danh saùch tham soá; …caùc leänh… End 2. Ví duï: function trivial_one;// teân khoái laø: trivial_one input a; begin: adder_blk integer i; … leänh… end V. Voøng laëp for: Gioáng nhö c/c++ ñöôïc duøng ñeå thöïc hieän nhieàu laàn moät leänh hoaëc khoái leänh. Neáu trong voøng laëp chæ chöùa moät leänh thì khoái begin … end coù theå boû qua. 1. Cuù phaùp: For (bieán ñeám = giaù trò 1; bieán ñeám = giaù trò 2; bieán ñeám = bieán ñeám +/- giaù trò) begin … leänh … end 2. Ví duï: For (j = 0; j
  5. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog Voøng laëp while thöïc hieän nhieàu laàn moät leänh hoaëc khoái leänh cho ñeán khi bieåu thöùc trong leänh while ñònh giaù laø sai. 1. Cuù phaùp: While (bieåu thöùc) Begin … caùc leänh… end 2. Ví duï: While (!overflow) @(posedge clk); a = a +1; end VII. Khoái leänh if… else if… else: Thöïc hieän moät leänh hoaëc moät khoái leänh phuï thuoäc vaøo keát quaû cuûa bieåu thöùc theo sau meänh ñeà if. Cuù phaùp If (bieåu thöùc) Begin … caùc leänh… end else if (bieåu thöùc) Begin … caùc leänh… end else Begin … caùc leänh… end VIII. Case: Leänh case cho pheùp löïa choïn tröôøng hôïp. Caùc leäng trong khoái default thöïc thi khi khoâng coù tröôøng hôïp löïa choïn so saùnh gioáng nhau. Neáu khoâng coù söï so GV: Nguyeãn Troïng Haûi Trang 22
  6. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog saùnh, bao goàm caû default, laø ñuùng, söï toång hôïp seõ taïo ra choát khoâng mong muoán. 1. Cuù phaùp: Case (bieåu thöùc) Case 1: Begin … caùc leänh… end Case 2: Begin … caùc leänh… end Case 3: Begin … caùc leänh… end … default: begin … caùc leänh… end endcase 2. Ví duï: Case (alu_clk) 2’b00: aluout = a + b; 2’b01: aluout = a - b; 2’b10: aluout = a & b; default: aluout = 1’bx; endcase GV: Nguyeãn Troïng Haûi Trang 23
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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