4. 雙端口ram設計

1. 設計要求

設計一個位寬8bit,地址深度為128,可以同時讀寫的雙端口RAM

要求:模塊名字為RAM_DUAL

輸入端口:ADDR_W,ADDR_R

CLK_R,CLK_W,RSTn

ADDR_R[6:0],ADDR_W[6:0]

DATA_WRT[7:0]

RD_EN,WRT_EN

輸出端口:

DATA_RD[7:0]

2. 補充

一般大容量的RAM由專門的IP廠商提供,有單口RAM(讀寫不能同時進行),雙口RAM等各種樣式。IP廠商會提供behavior model,綜合以及后端庫文件

小容量的RAM可以自己用觸發器陣列搭建。屬于雙口RAM(讀寫可以同時進行,但是必須是不同地址的讀寫),可支持同時讀寫。常用在FIFO中

(自己用觸發器搭的ram一般都是雙口的,因為觸發器是支持讀寫的,讀的話就是讀觸發器Q端的數據,寫的話就是往觸發器D端寫數據)

3. 設計代碼

如上圖:ram用二維數組表示,在給ram賦值的時候,由于向量 不能直接給二維數組賦值,所以mem[127:0] <= 0是不被允許的,我們可以使用for循環為mem賦值,但是仿真工具不識別for語句,我們需要使用generate語句

使用generate會讓仿真工具把for循環里面的代碼展開,循環128次就是分別寫128個always語句。分別針對mem[0],mem[1],mem[2] ...... mem[127]。

而變量定義需要使用genvar。

4. 仿真代碼和波形

不能直接將二維數組mem拖入波形中觀察(這是仿真工具verdi節約資源的做法)。如果想讓mem二維數組直接拖入波形,我們需要在main.v仿真文件中加入$fsdbDumpMDA選項。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/46357.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/46357.shtml
英文地址,請注明出處:http://en.pswp.cn/web/46357.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

k8s學習——創建測試鏡像

創建一個安裝了ifconfig、telnet、curl、nc、traceroute、ping、nslookup等網絡工具的鏡像&#xff0c;便于集群中的測試。 創建一個Dockerfile文件 # 使用代理下載 Ubuntu 鏡像作為基礎 FROM docker.m.daocloud.io/library/ubuntu:latest# 設置環境變量 DEBIAN_FRONTEND 為 …

學習測試9-接口測試 2-抓包工具Fiddler

Fiddler 抓包工具的使用 怎么找接口信息&#xff0c;可以通過瀏覽器的開發者工具 Fiddler 是一個 HTTP 協議調試代理工具 File 菜單&#xff1a; Capture Traffic&#xff08;或 F12&#xff09;&#xff1a;是個開關&#xff0c;可以控制是否把 Fiddler 注冊為系統代理。當把…

淺談Open.Json.pickle.Os

一、Open函數使用 open函數是 Python 中用于打開文件的內置函數&#xff0c;它返回一個文件對象&#xff0c;該文件對象提供了對文件進行讀寫操作的方法。使用 open 函數時&#xff0c;通常需要指定至少兩個參數&#xff1a;文件名&#xff08;file&#xff09;和模式&#xf…

【網絡工具】Charles 介紹及環境配置

?個人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;專欄地址&#xff1a;http://t.csdnimg.cn/iAmAo &#x1f4da;專欄簡介&#xff1a;在這個專欄中&#xff0c;我將會整理一些工作或學習中用到的工具介紹給大家~ &#x1f4d8;Charles 系列其它文章&#xff1a;【網絡…

Git操縱本地倉庫和遠程倉庫

git是一個代碼托管的平臺&#xff0c;我們可以對我們的代碼進行分支 推送提交 打標簽等等操作&#xff0c;而且git使用過程中也是支持一些linux語言的 比如cd呀 touch mkdir啊等等等 git的具體安裝過程就不再贅述 我個人認為 好多東西就是 代碼也好 文字 文檔 也好&…

【C語言】結構體,枚舉,聯合超詳解!!!

目錄 結構體 結構體聲明 結構體成員的訪問 結構體自引用 結構體變量定義&#xff0c;初始化&#xff0c;傳參 結構體內存對齊 位段 枚舉 聯合(共用體) 結構體 結構體聲明 1. 概念 1. 結構體是一些值的集合&#xff0c;這些值稱為成員變量。 2. 結構體的每個成員可…

長難句打卡7.15

The trend was naturally most obvious in those areas of science based especially on a mathematical or laboratory training, and can be illustrated in terms of the development of geology in the United Kingdom 這一趨勢自然在以數學或實驗室訓練為基礎的科學領域里…

Unlink

Unlink 原理 我們在利用 unlink 所造成的漏洞時&#xff0c;其實就是對 chunk 進行內存布局&#xff0c;然后借助 unlink 操作來達成修改指針的效果。簡單回顧一下 unlink 的目的與過程&#xff0c;其目的是把一個雙向鏈表中的空閑塊拿出來&#xff08;例如 free 時和目前物理…

Leetcode二分搜索法淺析

文章目錄 1.二分搜索法1.1什么是二分搜索法&#xff1f;1.2解法思路 1.二分搜索法 題目原文&#xff1a; 給定一個 n 個元素有序的&#xff08;升序&#xff09;整型數組 nums 和一個目標值 target &#xff0c;寫一個函數搜索 nums 中的 target&#xff0c;如果目標值存在返…

從PyTorch官方的一篇教程說開去(1 - 初心)

原文在此&#xff0c;喜歡讀原汁原味的可以自行去跟&#xff0c;這是一個非常經典和有學習意義的例子&#xff0c;在此向老爺子們致敬 - https://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html 開源文化好是好&#xff0c;但是“公地的悲哀”這點避不開…

每天一個數據分析題(四百三十七)- 統計量

若x1、x2、x3取自某總體的樣本&#xff0c;當期望a已知&#xff0c;方差c未知時&#xff0c;則以下不是統計量的是 A. x1x2x3 B. min{x1&#xff0c;x2&#xff0c;x3} C. a(x1x2)/2 D. (x1x2x3)/c 數據分析認證考試介紹&#xff1a;點擊進入 題目來源于CDA模擬題庫 點擊…

用c語言實現一個alexnet

在C語言中實現一個完整的AlexNet神經網絡是一個復雜的任務,涉及大量的矩陣運算和卷積操作。這個示例代碼將涵蓋AlexNet的主要組件,包括卷積層、ReLU激活函數、池化層和全連接層。 由于C語言本身沒有像Python的NumPy那樣的矩陣庫,我們需要自己編寫矩陣運算函數。另外,C語言…

高效運維:構建全面監控與自動化管理體系

在當今的數字化時代&#xff0c;運維管理已成為企業IT架構中不可或缺的一環。它不僅關乎系統的穩定運行&#xff0c;更直接影響到業務的響應速度、故障處理時間以及客戶滿意度等多個方面。因此&#xff0c;構建一套全面監控與自動化管理體系&#xff0c;對于提升企業運維效率、…

無人機之多旋翼與固定翼的區別

多旋翼無人機和固定翼無人機是無人機技術中的兩種主要形式&#xff0c;各自有獨特的優勢和應用場景。 一、飛行原理與結構 多旋翼無人機&#xff1a;依靠多個旋翼產生升力來平衡飛行器的重力&#xff0c;通過改變每個旋翼的轉速控制飛行器的姿態和平穩&#xff0c;使其能夠垂…

C++ //練習 15.22 對于你在上一題中選擇的類,為其添加合適的虛函數及公有成員和受保護的成員。

C Primer&#xff08;第5版&#xff09; 練習 15.22 練習 15.22 對于你在上一題中選擇的類&#xff0c;為其添加合適的虛函數及公有成員和受保護的成員。 環境&#xff1a;Linux Ubuntu&#xff08;云服務器&#xff09; 工具&#xff1a;vim 代碼塊 class Shape {public:S…

PDF文件無法編輯?3步快速移除PDF編輯限制

正常來說,我們通過編輯器打開pdf文件后,就可以進行編輯了&#xff61;如果遇到了打開pdf卻不能編輯的情況,那有可能是因為密碼或是掃描件的原因&#xff61;小編整理了一些pdf文件無法編輯&#xff0c;以及pdf文件無法編輯時我們要如何處理的方法&#xff61;下面就隨小編一起來…

[word] word如何編寫公式? #微信#知識分享

word如何編寫公式&#xff1f; word如何編寫公式&#xff1f;Word中數學公式是經常會使用到的&#xff0c;若是要在文檔中錄入一些復雜的公式&#xff0c;要怎么做呢&#xff1f;接下來小編就來給大家講一講具體操作&#xff0c;一起看過來吧&#xff01; 方法一&#xff1a;…

stm32學習:(寄存器3)系統架構

時鐘系統 時鐘樹 在STM32中有3種不同的時鐘源用來驅動系統時鐘(SYSCLK)&#xff1a; HSI振蕩器時鐘&#xff08;High Speed Internal oscillator&#xff0c;高速內部時鐘&#xff09;HSE振蕩器時鐘&#xff08;High Speed External&#xff08;Oscillator / Clock&#xff…

Ruby爬蟲技術:深度解析Zhihu網頁結構

在互聯網時代&#xff0c;數據的價值日益凸顯&#xff0c;尤其是在社交媒體和問答平臺如Zhihu&#xff08;知乎&#xff09;上&#xff0c;用戶生成的內容蘊含著豐富的信息和洞察。本文將深入探討如何使用Ruby爬蟲技術來解析Zhihu的網頁結構&#xff0c;并獲取有價值的數據。 …

linux service小例

linux service 測試 1.創建一個app // myapp.c // 間隔10s寫入時間到文件 #include <stdio.h> #include <time.h> #include <unistd.h> // 引入unix標準函數定義&#xff0c;如sleep()int main() {FILE *fp;time_t now;char buffer[80];// 打開文件以追加模…