Email liên h: hoangquang.dientu@gmail.com
Nhn thc hin hoặc hướng dn thiết kế s dng ngôn ng Verilog HDL trên FPGA KIT DE1
DE2. Chi tiết xin liên h email. Địa ch: Tp. H Chí Minh
Đối tượng: Sinh viên và các bn có nhu cu v thiết kế s
Phương thức liên h:
c 1: Qua email hoangquang.dientu@gmail.com để tha thun v cách thc làm vic, báo giá, ..
c 2: Gp mặt trao đổi và liên h qua điện thoi trong sut thi gian thc hin (Chú ý: Các bn cn liên
h qua email trước để bên mình còn đánh giá và và xem xét xem có thể thc hiện được ko và thc hin
như thế nào.
Kh năng:
- Cung cp tài liệu và hướng dn, bán tài liu
- Cung cấp sơ đồ thiết kế
- Cung cp code
- Cung cp kết qu mô phng
- Dy cách thc hin thiết kế (dy thiết kế, dy Verilog, hướng dn thc hin 1 thiết kế c
th, ...)
ĐON CODE FIFO 16 TNG MI TNG 8-BIT
Chức năng:
1. Ghi vào FIFO theo xung clock clk1, tín hiu ghi wr tích cc trong 1
chu k xung clock clk1
2. Đọc FIFO theo xung clock clk2, tín hiu đọc rd tích cc trong 1 chu
k xung clock clk2
3. Tín hiu fifo_full tích cực khi FIFO đy. Khi FIFO đầy thì không th
ghi thêm.
4. Tín hiu fifo_empty tích cc khi FIFO rng. Khi FIFO rng thì không
th đọc tiếp giá tr mi.
module fifo_example (
data_out, fifo_empty, fifo_full,
clk1, clk2, rst_n, wr, rd, data_in
);
//inputs
input clk1, clk2;
input rst_n;
input wr;
input rd;
input [7:0] data_in;
//outputs
output wire [7:0] data_out;
output wire fifo_empty;
output wire fifo_full;
//internal signals
reg [4:0] wptr;
reg [4:0] rptr;
reg [7:0] fifo_stage [15:0];
wire fbit_comp;
wire pointer_equal;
wire fifo_re;
wire fifo_we;
assign fifo_we = wr & (~fifo_full);
always @ (posedge clk1) begin
if (~rst_n) wptr <= 5'd0;
else if (fifo_we) wptr <= wptr + 5'd1;
end
assign fifo_re = rd & (~fifo_empty);
always @ (posedge clk2) begin
if (~rst_n) rptr <= 5'd0;
else if (fifo_re) rptr <= rptr + 5'd1;
end
assign fbit_comp = wptr[4] ^ rptr[4];
assign pointer_equal = (wptr[3:0] == rptr[3:0])? 1'b1: 1'b0;
assign fifo_full = fbit_comp & pointer_equal;
assign fifo_empty = (~fbit_comp) & pointer_equal;
always @ (posedge clk1) begin
if (fifo_we)
fifo_stage[wptr[3:0]] <= data_in;
end
assign data_out = fifo_stage[rptr[3:0]];
endmodule