tình hình là em đang ôn luyện phần thiết kế số, gặp cái bộ đệm fifo này thấy trong sách của thày có nói đến cách thiết kế FIFO dựa trên dual ram, thì như em thấy em đã viết đựoc cho khối dual ram, còn khối FIFO state,write_FIFO,read_FIFO thì vẫn chưa hiểu lắm, nhờ các bác giải đáp giùm:
về khối FIFO_state thì đựoc gợi ý như thé này, khối này tạo ra 2 tín hiệu là FIFO_empty và FIFO_full bằng cách sử dụng 1 bộ đếm, nếu giá trị đếm =0 thì FIFO_empty=1 còn nếu giá trị đếm đạt max thì FIFO_full=1, nếu chỉ đọc và không ghi thì giá trị đếm giảm đi 1, còn nếu chỉ ghi mà không đọc thì giá trị đếm tămg 1, nêu vừa có cả ghi và đọc thì giá trị đếm không đổi, khối này thì em nghĩ là em đã viết đựoc rồi nhưng còn 2 khối còn lại
write_FIFO dùng port A, theo như trong hình theo khối này cũng sẽ sử dụng 1 bộ đếm để tạo ra giá trị cho địa chỉ của port A, data như vậy sẽ đựoc lưu vào các ngăn theo giá trị định sẵn, và chỉ ghi vào khi bộ nhớ vẫn còn chống đến khi nó lấp đầy hết mà tính hiệu vẫn đưa vào thì phải làm sao để không nhận dự liệu nữa ????
read_FIFO dùng port B, em thì hơi yếu về ram, trứoc h ít khi đụng vào nhưng nhìn như thế này em thấy nó hơi lạ là 2 port này độc lập với nhau, đó là nếu đầu vào là data_inA thì đầu ra sẽ là data_outA (tưong tự cho port B) vậy nếy đến khối write_FIFO ở portA read_FIFO ở port B thì làm sao đọc tín hiệu ra được ( câu này em hỏi hơi ngu, tại em cũng chưa tra cứu kỹ)???
về khối FIFO_state thì đựoc gợi ý như thé này, khối này tạo ra 2 tín hiệu là FIFO_empty và FIFO_full bằng cách sử dụng 1 bộ đếm, nếu giá trị đếm =0 thì FIFO_empty=1 còn nếu giá trị đếm đạt max thì FIFO_full=1, nếu chỉ đọc và không ghi thì giá trị đếm giảm đi 1, còn nếu chỉ ghi mà không đọc thì giá trị đếm tămg 1, nêu vừa có cả ghi và đọc thì giá trị đếm không đổi, khối này thì em nghĩ là em đã viết đựoc rồi nhưng còn 2 khối còn lại
write_FIFO dùng port A, theo như trong hình theo khối này cũng sẽ sử dụng 1 bộ đếm để tạo ra giá trị cho địa chỉ của port A, data như vậy sẽ đựoc lưu vào các ngăn theo giá trị định sẵn, và chỉ ghi vào khi bộ nhớ vẫn còn chống đến khi nó lấp đầy hết mà tính hiệu vẫn đưa vào thì phải làm sao để không nhận dự liệu nữa ????
read_FIFO dùng port B, em thì hơi yếu về ram, trứoc h ít khi đụng vào nhưng nhìn như thế này em thấy nó hơi lạ là 2 port này độc lập với nhau, đó là nếu đầu vào là data_inA thì đầu ra sẽ là data_outA (tưong tự cho port B) vậy nếy đến khối write_FIFO ở portA read_FIFO ở port B thì làm sao đọc tín hiệu ra được ( câu này em hỏi hơi ngu, tại em cũng chưa tra cứu kỹ)???
Comment