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 3

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

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

Phương pháp lập trình thủ tục hay lập trình cấu trúc thường đi đôi với phương pháp phân tích trên xuống (top-down). Theo phương pháp này, người thiết kế hệ thống chia các chức năng (hàm) chính của hệ thống thành các chức năng nhỏ hơn, đến lượt mình, các chức năng nhỏ này lại được chia tiếp thành các chức năng nhỏ hơn nữa cho đến khi được các khối (hàm) chương trình đủ nhỏ.

Chủ đề:
Lưu

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

  1. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog Module chk_zero (a,z); Input [2:0] a; Output z; Assign z = ~| a; Endmodule VI. Toaùn töû gheùp: Dòch toaùn töû ñaàu baèng chöõ soá cuûa caùc bit ñöôïc ñònh nghóa bôûi toaùn töû thou hai. Vò trí coøn troáng seõ ñöôïc ñieàn vaøo vôùi nhöõng soá 0 cho caû hai tröôøng hôïp dòch traùi hoaëc phaûi. 1. Toaùn töû: > (dòch phaûi). 2. Ví duï: assign c = a
  2. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog Assign x = {2{1’b0},a}; // x= {0, 0, a}. IX. Toaùn töû ñieàu kieän: Gioáng nhö C/C++. Chuùng ñònh giaù moät trong hai bieåu thöùc cô baûn trong moät ñieàu kieän. Noù seõ toång hôïp thaønh boä ña coäng (MUX). 1. Toaùn töû : (ñieàu kieän)? keát quaû khi ñieàu kieän ñuùng : keát quaû khi ñieàu kieän sai. 2. Ví duï: assign a = (g) ? x : y; Assign a = ( inc = =2) ? a+1: a-1; X. Thöù töï toaùn töû: Nhöõng toaùn töû trong möùc gioáng nhau ñònh giaù töø traùi sang phaûi Toaùn töû Teân [] Choïn bit, choïn phaàn () Phaàn trong ngoaëc ñôn !, ~ Möùc logic vaø bit_wire NOT &, |, ~&, ~|, ^, ~^ Bieán ñoåi: AND, OR, NAND, NOT, XOR, XNOR. +, - Daáu chæ soá aâm soá döông. Gheùp noái { 3’b101,3’b110} = 6’b101110 {} Thöù baûn {3{3’b101 } }=9’b101101101 {{ } } *, /, % Nhaân, chia, phaàn traêm. +, - Coäng tröø nhò phaân. Dòch traùi, phaûi. = Daáu so saùnh. Bieán Reg vaø wire ñöôïc laáy baèng nhöõng soá döông. = =, != Baèng vaø khoâng baèng trong toaùn töû logic. & Bit_wire AND, and taát caû caùc bit vôùi nhau. ^, ~^ Bit_wire XOR, Bit_wire XNOR. | Bit_wire OR. &&, || Toaùn töû logic AND, OR. ?: x = ( ñieàu kieän ) T:F GV: Nguyeãn Troïng Haûi Trang 13
  3. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog Chöông VI TOAÙN HAÏNG I. Literals (daïng kí töï): Laø toaùn haïng coù giaù trò khoâng ñoåi maø ñöôïc duøng trong bieåu thöùc Verilog. Coù hai daïng kí töï laø: Chuoãi: laø moät maûng coù nhieàu kí töï ñöôïc ñaët trong daáu ””. Chöõ soá: laø nhöõng soá khoâng ñoåi, nhò phaân, baùt phaân, thaäp phaân, hoaëc soá hex. 1. Cuù phaùp caùc chöõ soá: n’F dddd… Trong ñoù: n : soá nguyeân mieâu taû soá bit. F: moät trong boán ñònh daïng sau: b( soá nhò phaân), o( soá baùt phaân), d( soá thaäp phaân), h( soá hex). 2. Ví duï: “time is”// chuoãi kí töï. 267 // maëc ñònh 32 bit soá thaäp phaân. 2’b01 // 2 bit nhò phaân. 20’h B36E // 20 bit soá hex. ‘o62 // 32 bit baùt phaân. II. Choïn 1 phaàn töû bit vaø choïn 1 phaàn caùc bit. Ñaây laø söï löïa choïn moät bít ñôn hoaëc moät nhoùm bit theo thöù töï, töø moät wire, reg hoaëc töø tham soá ñaët trong ngoaïc [ ]. Choïn 1 phaàn töû bit vaø choïn 1 phaàn caùc bit coù theå ñöôïc duøng nhö laø caùc toaùn haïng trong bieåu thöùc baèng nhieàu caùch thöùc gioáng nhau maø caùc ñoái töôïng döõ lieäu goác ñöôïc duøng. 1. Cuù phaùp: Teân bieán [ thöù töï bit]. Teân bieán [ msb: lsb]. 2. Ví duï: GV: Nguyeãn Troïng Haûi Trang 14
  4. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog Reg [7:0] a, b; Reg [3:0] ls; c = a[7] & b[7]; ls = a[7:4] + b[3:0]; III. Goïi haøm chöùc naêng: Giaù trò traû veà cuûa moät haøm coù theå ñöôïc duøng tröïc tieáp trong bieåu thöùc maø khoâng caàn gaùn tröôùc cho bieán reg hoaëc wire. Goïi haøm chöùc naêng nhö laø moät trong nhöõng toaùn haïng. Chieàu roäng bít cuûa giaù trò traû veà chaéc chaén ñöôïc bieát tröôùc. 1. Cuù phaùp: Teân haøm(danh saùch bieán). 2. Ví duï: Assign a = b & c & chk_bc(b, c); Function chk_bc; Input c, b; Chk_bc = b^ c; Endfunction IV. Wire, reg, vaø tham soá: Wire, reg, vaø tham soá coù theå ñuôïc duøng nhö laø caùc toaùn haïng trong bieåu thöùc Verilog. GV: Nguyeãn Troïng Haûi Trang 15
  5. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog Chöông VII MODULES I. Khai baùo modules: Moät module laø baûn thieát keá chuû yeáu toàn taïi trong Verilog. Doøng ñaàu tieân cuûa khai baùo module chæ roõ danh saùch teân vaø port (caùc ñoái soá). Nhöõng doøng keá tieáp chæ roõ daïng I/O (input, output, hoaëc inout) vaø chieàu roäng cuûa moãi port. Maëc ñònh chieàu roäng port laø 1 bit. Sau ñoù, nhöõng bieán port phaûi ñöôïc khai baùo wire, wand, …, reg. Maëc ñònh laø wire. Nhöõng ngoõ vaøo ñaëc tröng laø wire khi döõ lieäu ñöôïc choát bean ngoaøi module. Caùc ngoõ ra laø daïng reg neáu nhöõng tín hieäu cuûa chuùng ñöôïc chöùa trong khoái always hoaëc initial. 1. Cuù phaùp: Module teân module (danh saùch port); Input [msb:lsb] danh saùch port ngoõ vaøo; Output [msb:lsb] danh saùch port ngoõ ra; Inout [ msb:lsb ] danh saùch port vaøo_ ra; … caùc leänh… endmodule 2. Ví duï: Module add_sub(add, in1, in2, out); Wire, reg, vaø tham soá: Input[7:0 ] in1, in2; Wire in1, in2; Output [7:0] out; Reg out; … caùc leänh khaùc… Endmodule GV: Nguyeãn Troïng Haûi Trang 16
  6. Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog II. Chæ ñònh lieân tieáp: Caùc chæ ñònh lieân tieáp ñöôïc duøng ñeå gaùn moät giaù trò leân treân moät wire trong moät module. Ñoù laø caùc chæ ñònh thoâng thöôøng beân ngoaøi khoái always hoaëc khoái initial. Caùc chæ ñònh lieân tieáp ñöôïc thöïc hieän vôùi moät leänh gaùn (assign) roõ raøng hoaëc baèng söï chæ ñònh moät giaù trò ñeán moät wire trong luùc khai baùo. Chuù yù raèng, caùc leänh chæ ñònh lieân tieáp thì toàn taïi vaø ñöôïc chaïy lieân tuïc trong suoát quaù trình moâ phoûng. Thöù töï caùc leänh gaùn khoâng quan troïng. Moïi thay ñoåi beân phaûi cuûa baát cöù ngoõ vaøo seõ laäp töùc thay ñoåi beân traùi cuûa caùc ngoõ ra. 1. Cuù phaùp: Wire bieán wire = giaù trò; Assign bieán wire = bieåu thöùc; 2. Ví duï: Wire [ 1:0 ] a = 2’b 01; Assign b = c &d; Assign d = x | y; III. Module instantiations: Nhöõng khai baùo module laø nhöõng khuoân maãu maø noù ñöôïc taïo neân töø caùc ñoái töôïng thöïc teá ( instantiation). Caùc module ñôn cöû beân trong caùc module khaùc, vaø moãi daãn chöùng taïo moät ñoái töôïng ñoäc nhaát töø khuoân maãu. Ngoaïi tröø ñoù laø module möùc treân laø nhöõng daãn chöùng töø chính chuùng. Caùc port cuûa module ví duï phaûi thoûa nhöõng dònh nghóa trong khuoân maãu. Ñaây laø maët lyù thuyeát: baèng teân, söû duïng daáu chaám(.) ”.teân port khuoân maãu ( teân cuûa wire keát noái ñeán port)”. Baèng vò trí, ñaët nhöõng port ôû nhöõng vò trí gioáng nhau trong danh saùch port cuûa caû khuoân maãu laãn instance. 1. Cuù phaùp: Teân instance1 (danh saùch keát noái port ); Teân instance2(danh saùch keát noái port); … 2. Ví duï: // ñònh nghóa module module and4(a,b,c); input [3:0]a,b; output [3:0]c; GV: Nguyeãn Troïng Haûi Trang 17
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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