Danh mục tài liệu

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

Số trang: 6      Loại file: pdf      Dung lượng: 121.48 KB      Lượt xem: 6      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Thông thường, điều này dẫn tới thỏa hiệp giữa thuận lợi cho việc lập trình và hiệu quả của chương trình (thỏa hiệp giữa "thời gian lập trình" and "và thời gian tính toán").
Nội dung trích xuất từ tài liệu:
Giáo trình lập trình Verilog Tiếng Việt 6Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog toàn taïi baèng vieäc söû duïng ngoaøi nhöõng nhaùnh maëc ñònh. Chuù yù raèng choát seõ ñöôïc taïo ra neáu moät bieán khoâng ñöôïc gaùn cho caùc ñieàu kieän nhaùnh coù theå toàn taïi. Ñeå hoaøn thieän maõ coù theå ñoïc ñöôïc, duøng leänh case ñeå taïo maãu ña coäng lôùn.III. Boä coäng, tröø: Toaùn töû coäng tröø trong boä coäng tröø maø coù chieàu roäng phuï thuoäc vaøo chieàu roäg cuûa toaùn töû lôùn hôn.IV. Boä ñeäm 3 traïng thaùi: Boä ñeäm ba traïng thaùi ñöôïc suy ra neáu bieán ñöôïc gaùn theo ñieàu kieän giaù trò toång trôû cao Z duøng moät trong caùc toaùn töû: if, case,…V. Caùc linh kieän khaùc: Haàu heát caùc coång logic ñöôïc suy ra töø vieäc duøng nhöõng toaùn haïng töông öùng cuûa chuùng. Nhö moät söï löïa choïn moät coång hoaëc moät thaønh phaàn coù theå ñöôïc giaûi thích roõ raøng baèng ví duï cuï theå vaø söû duïng caùc coång cô sôû (and, or, nor, inv…) mieãn laø baèng ngoân ngöõ Verilog.GV: Nguyeãn Troïng Haûi Trang 30Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn VerilogChöông XIIMOÄT SOÁ VÍ DUÏI. Caáu truùc moät chöông trình duøng ngoân ngöõ Verilog: // Khai baùo module Module teân chöông trình (teân bieán I/O); // teân chöông trình truøng teân file.v. Input [msb:lsb] bieán; Output [msb:lsb] bieán; Reg [msb:lsb] bieán reg; Wire [msb: lsb] bieán wire; // Khai baùo khoái always, hoaëc khoái initial. … caùc leänh … EndmoduleII. Moät soá ví duï: Phaàn meàn hoã trôï: MAX+plusII 10.0 BASELINE1. Ví duï 1:a. Chöông trình tính NOR caùc bit cuûa bieán vaøo module vdcong(in,out); input[3:0] in; output out; assign out= ~|in; endmoduleGV: Nguyeãn Troïng Haûi Trang 31Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilogb. Moâ phoûng2. Ví duï 2:a. Chöông trình coäng hai bieán boán bit module adder (sum_out, carry_out, carry_in, ina, inb); output [3:0]sum_out; input [3:0]ina, inb; output carry_out; input carry_in; wire carry_out, carry_in; wire[3:0] sum_out, ina, inb; assign { carry_out, sum_out } = ina + inb + carry_in; EndmoduleGV: Nguyeãn Troïng Haûi Trang 32Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilogb. Moâ phoûng3. Ví duï 3:a. Chöông trình giaûi maõ 2 sang 4 module dec2to4 (w, en, y); input [1:0] w; input en; output[3:0] y; wire[1:0]w; reg[3:0]y; wire en; always @(w or en) begin if(en==1b1) begin case(w) 2b00: yToùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog endcase end else yToùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog always @(w0 or w1 or s) begin if(s==1) y = w0; else y = w1; end endmoduleb. Moâ phoûng5. Ví duï 5:a. Chöông trình doàn keânh 4 sang 1 module mux14(w0, w1, w2, w3, s, y); input w0, w1, w2, w3; input[1:0] s; output y; wire w0, w1,w2,w3; reg y;GV: Nguyeãn Troïng Haûi Trang 35