簡體   English   中英

程序如何在單個時鍾周期內從 memory 讀取 32 位?

[英]How does the Program read 32 bit from the memory in a single clock cycle?

所以,我有這個任務,我需要設計一個 RISC-32 位 5 級流水線。 我必須支持至少 32 個(32 位)指令和 32 個(32 位)數據值。 memory 應在 1 個時鍾周期內讀取。 現在,為此,我使用了一個可尋址的字 memory(1 個地址將包含 32 位)。 但是,我想讓這個字節可尋址。

這樣做的一種方法是使外部時鍾慢四倍,然后將它們傳遞到流水線的其他階段。 但是將原始時鍾傳遞到 memory 部分。 但是,這會使模擬有點忙亂,就像我必須運行時鍾 20 次(而不是 5 次)。

另一種方法是運行一個比外部時鍾快四倍的時鍾(連接到內存)。 因此,當一個時鍾周期過去時,memory 將被訪問四次,這樣我們就可以得到完整的 32 位。 但是,將時鍾頻率加倍/加倍的電路似乎太復雜了。

是否有可以實現的更簡單的倍頻器電路,或者是否有任何其他方法可以做到這一點?

我正在使用logisim-evolution對此進行模擬,對於 memory 部分,我使用了內置RAM

這是內存: 內存

制作 32 位字節可尋址 memory 的正常方法是有四個 8 位 memory 子系統,它們都被饋送到字節地址的前 N-2 位。 執行 32 位加載或存儲時,所有四個 memory 子系統都將處於活動狀態。 當進行 16 位加載或存儲時,倒數第二個地址位將用於控制是激活第一和第二個子系統還是激活第三和第四個子系統。 當進行 8 位加載或存儲時,底部地址位將在第一個和第二個或第三個和第四個子系統之間為 select。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM