Thiết kế IC trên FPGA - 1 doc

16 266 1
Thiết kế IC trên FPGA - 1 doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

7KLӃW NӃ IC trên FPGA (Field-Programmable Gate Array ) ĈһQJBá .KҳF 7ULӅX *LҧQJ viên Khoa CNTT 7UѭӡQJ Ĉ+%.Ĉj 1ҹQJ 1 2009 ĈɴQJBá .KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1 Multiplier (PҥFK nhân)  0ҥFK nhân có 2 input a, b ÿӅX là 4 bit thì output SKҧL là Pҩ\ bit?  => output q SKҧL 8 bit  9ӟL Verilog ta FKӍ FҫQ dùng OӋQK gán: assign q = a * b; 2 Multiplier 4 4 8 2009 ĈɴQJBá .KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1 Multiplier, FKѭѫQJ trình PүX module Multiplier(a, b, q); input [3:0] a, b; output [7:0] q; assign q = a * b; endmodule  Khi xem report ta WKҩ\: 4x4-bit multiplier : 1 Cell Usage : # BELS : 72 # AND2 : 37 # OR2 : 14 # OR3 : 1 # XOR2 : 20 # IO Buffers : 16 # IBUF : 8 # OBUF : 8 3 Multiplier 4 4 8 2009 ĈɴQJBá .KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1 Comparator (PҥFK so sánh) 4 Greater 8 8 1 module Greater(a, b, a_gt_b); input [7:0] a, b; output a_gt_b; assign a_gt_b = (a > b)? 1'b1 : 1'b0; endmodule  0ҥFK so sánh OӟQ KѫQ:  Khi a > b thì cho ra giá WUӏ 1, QӃX không thì cho ra giá WUӏ 0. 2009 ĈɴQJBá .KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1 Comparator (PҥFK so sánh) 5 Equal 8 8 1 module Equal(a, b, a_eq_b); input [7:0] a, b; output a_eq_b; assign a_eq_b = (a == b); endmodule  0ҥFK so sánh EҵQJ  Khi a = b thì cho ra giá WUӏ 1, QӃX không thì cho ra giá WUӏ 0. 2009 ĈɴQJBá .KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1 ROM  %ӝ QKӟ ROM ÿѭӧF mô SKӓQJ QKѭ WKӃ nào? 6  Input là ÿӏD FKӍ các ô QKӟ Output là giá WUӏ OѭX trong ô QKӟ ÿy ROM 4 8 addr data  /ұS EҧQJ WѭѫQJ quan JLӳD addr và data  Mô SKӓQJ:  Dùng OӋQK gì ÿӇ mô SKӓQJ? addr data 00 11 24 39 14 196 15 225 2009 ĈɴQJBá .KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1 &KѭѫQJ trình 7 module ROM(addr, data); input [3:0] addr; output [7:0] data; assign data = romOut(addr); function [7:0] romOut; input [3:0] addr; case (addr) 0: romOut = 0; 1: romOut = 1; «««««« 14: romOut = 196; 15: romOut = 225; endcase endfunction endmodule Macro Statistics # ROMs : 1 16x8-bit ROM : 1 0ҥFK WXҫQ Wӵ 0ҥFK WXҫQ Wӵ là ORҥL PҥFK ÿLӋQ Wӱ Vӕ mà tín KLӋX ÿҫX ra WҥL WKӡL ÿLӇP WӟL FKҷQJ QKӳQJ SKө WKXӝF vào Wә KӧS giá WUӏ ELӃQ vào WҥL WKӡL ÿLӇP KLӋQ WҥL mà còn SKө WKXӝF vào tín KLӋX ÿҫX ra hiên WҥL. 8 2009 ĈɴQJBá .KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1 D Flip-flop  D Flip-flop là gì? 9 D flip-flop D Clk Q Clock D Q Qprev Rising edge 0 0 X Rising edge 1 1 X Non-Rising X Qprev  %ҧQJ công tác FӫD D Flip- flop ORҥL rising edge (thay ÿәL WUҥQJ thái khi clock FKX\ӇQ Wӯ 0 sang 1) 2009 ĈɴQJBá .KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1 Module D_FlipFlop 10 module D_FlipFlop(clk, D, Q); input clk, D; output Q; reg Q; always @(posedge clk) begin Q <= D; end endmodule  3KҫQ PӅP QKұQ ra ÿk\ là Flip-flop NLӇX D [...]...D Flip-flop có set, reset Khi tín set 1 thành 0 thì Q 1 D Khi tín reset 1 thành 0 thì Q 0 Clk công tác Set D flip-flop RS Q Reset Clock Rising edge Rising edge Non-Rising X X 2009 Set Reset D Q Qprev 1 1 0 0 X 1 1 1 1 X 1 1 X Qprev 0 1 X 1 X 1 0 X 0 X Bá , GV khoa CNTT, 11 Module D_FlipFlopWithSR module D_FlipFlopWithSR(clk, set, reset, D,... == 0) Q . tác D flip-flop RS D Clk Q Set Reset Clock Set Reset D Q Qprev Rising edge 1 1 0 0 X Rising edge 1 1 1 1 X Non-Rising 1 1 X Qprev X01X1X X10X0X 2009 ĈɴQJBá .KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%. 1 Module. addr; case (addr) 0: romOut = 0; 1: romOut = 1; «««««« 14 : romOut = 19 6; 15 : romOut = 225; endcase endfunction endmodule Macro Statistics # ROMs : 1 16x8-bit ROM : 1 0ҥFK WXҫQ Wӵ 0ҥFK WXҫQ Wӵ là. Ĉ+%. 1 JK Flip-flop có set, reset  Khi tín KLӋX set Wӯ 1 thành 0 thì Q EҵQJ 1  Khi tín KLӋX reset Wӯ 1 thành 0 thì A EҵQJ 0 14  %ҧQJ công tác JK flip-flop RS J Clk Q Set Reset K JKQ 00Q 010 10 1 1

Ngày đăng: 29/07/2014, 00:21

Tài liệu cùng người dùng

Tài liệu liên quan