Nguyên văn bởi danbeo85
Xem bài viết
Như anh đã biết để ghi dữ liệu vào 1 RAM ta cầu 3 yếu tố: data, address và cạnh lên của xung clock. Data được em đưa vào kit De0 thông qua port của MCU. Address để tiết kiệm port em đã thiết kế 1 khối như khối counter - đếm lên mỗi khi có cạnh xuống của MCUstrobe. Xung strobe này cũng được dùng làm write clock cho RAM. Ngoài ra, MCU còn điều khiển tín hiệu reset bộ đếm address để cho việc thực hiện ghi RAM.
Như vậy, hoạt động của hệ thống của em gồm có. Tại cạnh xuống của MCUstrobe, giá trị address được tăng lên 1 đơn vị và đưa đến RAM cùng với tín hiệu data. Tại cạnh lên của xung strobe, data sẽ được ghi vào address tại cạnh xuống ban nãy.
Em đổ mô phỏng được kết quả như mong muốn và tiến hành đổ lên kit nhưng thực tế các data được ghi vào 1 cách ngẫu nhiên, không theo sự kiểm soát của em. Sau đó em dùng Signal Tap để kiểm tra. Em đặt probe tại address out của khối counter, address in của RAM và Clock in của RAM (em muốn kiểm tra xem address có được đưa đến RAM đúng theo yêu cầu hay không). Em thu được kết quả 2 tín hiệu address tại probe giống nhau và tăng lên khi có cạnh xuống của strobe - đúng theo như mong muốn đồng thời trên kit kết quả cũng theo như ý muốn của em.
Em disable file Signal Tap và đổ lên kit theo kiểu thông thường (tool -> Programing) thì kết quả vẫn không như mong đợi như ban đầu.
Thân chào.
Comment