国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

手把手教你在Vivado創(chuàng)建一個(gè)RAM的IP核并使用ILA工具驗(yàn)證

這篇具有很好參考價(jià)值的文章主要介紹了手把手教你在Vivado創(chuàng)建一個(gè)RAM的IP核并使用ILA工具驗(yàn)證。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


一、RAM實(shí)驗(yàn)背景知識(shí)

RAM的定義

RAM的英文全稱是Random Access Memory,即隨機(jī)存取存儲(chǔ)器,它可以隨時(shí)把數(shù)據(jù)寫入任一指定地址的存儲(chǔ)單元,也可以隨時(shí)從任一指定地址中讀出數(shù)據(jù),其讀寫速度是由時(shí)鐘頻率決定的。RAM主要用來存放程序及程序執(zhí)行過程中產(chǎn)生的中間數(shù)據(jù)、運(yùn)算結(jié)果等。

RAM的分類

單端口:只有一個(gè)端口,讀寫數(shù)據(jù)不能同時(shí)進(jìn)行,共用數(shù)據(jù)通道。

偽雙端口:擁有兩個(gè)數(shù)據(jù)通道,一個(gè)用來寫一個(gè)用來讀。

真雙端口:擁有兩個(gè)數(shù)據(jù)通道,一個(gè)用來寫一個(gè)用來讀。

本次實(shí)驗(yàn)使用A7系列,是真雙端口

實(shí)驗(yàn)設(shè)計(jì)

  1. 當(dāng)我們想驅(qū)動(dòng)一個(gè)RAM的IP核時(shí),我們需要提供六個(gè)信號(hào):clk(時(shí)鐘)、rst(復(fù)位信號(hào))、wea(讀寫切換)、data(數(shù)據(jù)線)、addr(地址線)、en(ram的使能)
  2. 在本次代碼中,我們使用RAM這個(gè)IP核時(shí),需要一個(gè)讀寫模塊,里面有一個(gè)讀寫計(jì)數(shù)器(最大值64,0-31讀數(shù)據(jù),32-63寫數(shù)據(jù),在31時(shí)改變讀寫切換的值),數(shù)據(jù)計(jì)數(shù)器(0-31作為寫入數(shù)據(jù)),地址計(jì)數(shù)器(0-31)用這三個(gè)計(jì)數(shù)器來對(duì)應(yīng)上面六個(gè)輸入。

二、創(chuàng)建一個(gè)新的工程

不會(huì)新建工程的可以看一下我之前的博客,這里只展示一些簡(jiǎn)略的新建工程過程。將工程命名為ip_ram。
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
新建工程完成
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件

三、創(chuàng)建RAM IP核

ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件

雙擊點(diǎn)開上圖3的位置
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
下面這個(gè)頁(yè)面是Vivado自動(dòng)生成的,不用改
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
最后一頁(yè)可以檢查一下自己的設(shè)置
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
看到下面的圖片,說明IP核已經(jīng)創(chuàng)建完成了
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件

四、編寫代碼

創(chuàng)建ip_ram.v(設(shè)計(jì)文件)、ram_rw.v(讀寫模塊,為什么創(chuàng)建這個(gè)可以看上面的實(shí)驗(yàn)設(shè)計(jì))、ram_xdc.xdc(時(shí)序約束文件)

從.veo文件中可以把IP核的實(shí)例粘貼出來
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
ip_ram.v代碼如下所示(這里我放的是添加完ILA的完整代碼)

`timescale 1ns / 1ps

module ip_ram(
    input sys_clk,
    input sys_rst_n
    
    );
    
    wire         ram_en        ;
    wire         ram_wea       ;
    wire [4 : 0] ram_addr      ;
    wire [7 : 0] ram_wr_data   ;
    wire [7 : 0] ram_rd_data   ;
    

ram_rw ram_rw_u(
    .clk         (sys_clk)  ,        
    .rst_n       (sys_rst_n)  ,      
    .ram_en      (ram_en)  ,     
    .ram_wea     (ram_wea)  ,    
    .ram_addr    (ram_addr)  ,   
    .ram_wr_data (ram_wr_data)  ,
    .ram_rd_data (ram_rd_data) 

);

blk_mem_gen_0 blk_mem_gen_0 (
  .clka(sys_clk),            // input wire clka
  .rsta(sys_rst_n),            // input wire rsta
  .ena(ram_en),              // input wire ena
  .wea(ram_wea),              // input wire [0 : 0] wea
  .addra(ram_addr),          // input wire [4 : 0] addra
  .dina(ram_wr_data),            // input wire [7 : 0] dina
  .douta(ram_rd_data)          // output wire [7 : 0] douta
 // .rsta_busy()  // output wire rsta_busy
);

endmodule

ram_rw代碼如下所示(這里我放的是添加完ILA的完整代碼)

`timescale 1ns / 1ps

module ram_rw(
    input               clk,
    input               rst_n,
    output              ram_en,
    output              ram_wea,
    output reg [4 : 0]  ram_addr,
    output reg [7 : 0]  ram_wr_data,
    input [7 : 0]       ram_rd_data
    
    );
    
    reg [5 : 0] rw_cnt;
    
    assign ram_wea = (rw_cnt <= 6'd31 && ram_en) ? 1'b1:1'b0;
    assign ram_en = rst_n;
    
    always@(posedge clk or negedge rst_n) begin
        if(!rst_n) rw_cnt <= 1'b0;
        else if(rw_cnt == 6'd63) rw_cnt <= 6'b0;
        else rw_cnt <= rw_cnt + 1'b1;
    end
    
    
    always@(posedge clk or negedge rst_n) begin
        if(!rst_n) ram_wr_data <= 1'b0;
        else if(rw_cnt <= 6'd31) ram_wr_data <= ram_wr_data +1'b1;
        else  ram_wr_data <= 1'b0; 
    end
    
    
    always@(posedge clk or negedge rst_n) begin
        if(!rst_n) ram_addr <= 1'b0;
        else if(ram_addr <= 5'd31) ram_addr <= ram_addr +1'b1;
        else  ram_addr <= 1'b0; 
    end

ila_0 your_instance_name (
	.clk(clk), // input wire clk
	.probe0(ram_en), // input wire [0:0]  probe0  
	.probe1(ram_wea), // input wire [0:0]  probe1 
	.probe2(ram_addr), // input wire [4:0]  probe2 
	.probe3(ram_wr_data), // input wire [7:0]  probe3 
	.probe4(ram_rd_data) // input wire [7:0]  probe4
);

endmodule


ram_xdc.xdc代碼如下所示(這里我放的是添加完ILA的完整代碼)

create_clock -period 20.000 -name sys_clk [get_ports sys_clk]
set_property -dict {PACKAGE_PIN R4 IOSTANDARD LVCMOS15} [get_ports sys_clk]
set_property -dict {PACKAGE_PIN U7 IOSTANDARD LVCMOS15} [get_ports sys_rst_n]

五、創(chuàng)建ILA IP核并生成比特流文件

ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
這里實(shí)際上需要復(fù)制.veo的實(shí)例去更改代碼,完整代碼我貼到上一章了
點(diǎn)擊生成bit流文件
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
出現(xiàn)下面這個(gè)界面代表bit流生成成功,點(diǎn)擊取消就可以
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件

六、將程序下入芯片,并通過ILA觀察波形

ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件
下載后ILA自動(dòng)打開,可以看到,讀寫時(shí)序以及讀寫數(shù)據(jù)都正確,實(shí)驗(yàn)成功
ram wea,FPGA,fpga開發(fā),單片機(jī),嵌入式硬件文章來源地址http://www.zghlxwxcb.cn/news/detail-823888.html

到了這里,關(guān)于手把手教你在Vivado創(chuàng)建一個(gè)RAM的IP核并使用ILA工具驗(yàn)證的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 手把手教你在Windows下搭建Vue開發(fā)環(huán)境

    手把手教你在Windows下搭建Vue開發(fā)環(huán)境

    最近有小伙伴不會(huì)Vue環(huán)境的部署,小孟親自測(cè)試了下,大家有需要的可以按照下面的學(xué)習(xí)。 如果想看視頻的,也可以看視頻的教程: https://www.bilibili.com/video/BV1if4y1X7BS/?spm_id_from=333.788.recommend_more_video.-1vd_source=e64f225fc5daf048d2687502cb23bb3b 在Windows下搭建Vue開發(fā)環(huán)境: 官網(wǎng)https://n

    2024年02月08日
    瀏覽(27)
  • 手把手教你在Docker中安裝Nginx(圖文超詳細(xì))

    手把手教你在Docker中安裝Nginx(圖文超詳細(xì))

    本文介紹如何在 Windows Docker Desktop 平臺(tái)安裝 Nginx 容器(Linux 平臺(tái)同樣適用),并詳細(xì)講解如何配置 Nginx ,實(shí)現(xiàn) HTTP 請(qǐng)求在后端服務(wù)器集群間的負(fù)載均衡。 訪問 dockerhub 查找所需的鏡像版本: 這里我選擇 1.24.0 版,執(zhí)行如下命令: 命令執(zhí)行結(jié)果: 隨后,我們第一次運(yùn)行鏡像,

    2024年03月16日
    瀏覽(30)
  • 【最新】手把手教你在VMware中安裝Ubuntu虛擬機(jī)

    【最新】手把手教你在VMware中安裝Ubuntu虛擬機(jī)

    前言 前段時(shí)間卸載了Ubuntu雙系統(tǒng),但是發(fā)現(xiàn)還是需要使用Ubuntu,遂決定在虛擬機(jī)中裝一個(gè)Ubuntu系統(tǒng)。 已經(jīng)裝有VMware的可以忽略此步。 (1)點(diǎn)擊VMware官網(wǎng)下載VMware。 (2)使用Windows系統(tǒng)的點(diǎn)擊紅色方框處進(jìn)行下載。 這是筆者下載好的Windows系統(tǒng)使用的VMware17.0.0 VMware17.0.0百度云

    2024年03月28日
    瀏覽(31)
  • 9個(gè)步驟,手把手教你在Windows上安裝Hadoop

    9個(gè)步驟,手把手教你在Windows上安裝Hadoop

    在Windows上安裝Hadoop時(shí)經(jīng)常會(huì)出現(xiàn)許多錯(cuò)誤,很多用戶使用基于Linux的操作系統(tǒng)。本文詳細(xì)講述如何在Windows上安裝和運(yùn)行Apache Hadoop,如果遇到了問題,可以參考文章中的步驟進(jìn)行解決。 微信搜索關(guān)注《Java學(xué)研大本營(yíng)》 在 Microsoft Windows 上運(yùn)行 Apache Hadoop 是比較繁瑣的任務(wù),在

    2024年02月08日
    瀏覽(23)
  • 手把手教你在windows使用Docker搭建Minio[詳細(xì)教程]

    手把手教你在windows使用Docker搭建Minio[詳細(xì)教程]

    目錄 1什么是Minio 2安裝Docker 3Docker搭建Minio 4.創(chuàng)建Minio容器并運(yùn)行 5.進(jìn)行訪問 6安裝可能出現(xiàn)的問題 ????????MinIO是一個(gè)基于開源的對(duì)象存儲(chǔ)服務(wù)器,MinIO的設(shè)計(jì)目標(biāo)是提供高性能、高可用性和高可靠性的對(duì)象存儲(chǔ)服務(wù)。MinIO可以作為一個(gè)獨(dú)立的對(duì)象存儲(chǔ)服務(wù),也可以在Kuber

    2024年02月12日
    瀏覽(34)
  • 新手教程科普,手把手教你在bitget walelt用Uniswap

    新手教程科普,手把手教你在bitget walelt用Uniswap

    Uniswap 是以太坊區(qū)塊鏈上領(lǐng)先的去中心化交易所 (DEX),允許用戶交換和交易各種加密貨幣。 Uniswap 于 2018 年 11 月推出,是以太坊最早的 DApp 之一。目前有四個(gè)版本;其中V1、V2、V3都有開源代碼庫(kù)。 與 Coinbase 或 Binance 等傳統(tǒng)中心化交易所 (CEX) 不同,Uniswap 不受任何單一實(shí)體控

    2024年03月20日
    瀏覽(21)
  • 手把手教你在 Windows 環(huán)境中搭建 MQTT 服務(wù)器

    手把手教你在 Windows 環(huán)境中搭建 MQTT 服務(wù)器

    前些天要對(duì)接一家硬件商的設(shè)備數(shù)據(jù),對(duì)方使用的 MQTT 協(xié)議點(diǎn)對(duì)點(diǎn)透?jìng)鳎杂众s緊搭建 MQTT 服務(wù)器,寫 .NET 程序接收數(shù)據(jù)等等,今天分享一下如何搭建 MQTT 服務(wù)器。 MQTT(Message Queuing Telemetry Transport)是一種輕量級(jí)的、基于發(fā)布/訂閱模式的通信協(xié)議,專門設(shè)計(jì)用于在低帶寬

    2024年02月03日
    瀏覽(34)
  • 手把手教你實(shí)現(xiàn)一個(gè)JavaWeb項(xiàng)目:創(chuàng)建一個(gè)自己的網(wǎng)頁(yè)博客系統(tǒng)(前端+后端)(一)

    手把手教你實(shí)現(xiàn)一個(gè)JavaWeb項(xiàng)目:創(chuàng)建一個(gè)自己的網(wǎng)頁(yè)博客系統(tǒng)(前端+后端)(一)

    一篇博客帶你實(shí)現(xiàn)一個(gè)真正的項(xiàng)目! ?先來看看它是什么樣式的: 目錄: 1、大體步驟??: ????????1、創(chuàng)建Maven項(xiàng)目?? ????????2、引入依賴?? ????????3、創(chuàng)建必要的目錄?? ????????4、編寫代碼?? ????????5、打包部署(基于SmartTomcat)?? ????????

    2024年02月06日
    瀏覽(22)
  • 【運(yùn)維】手把手教你在windows使用Docker搭建Minio[詳細(xì)教程]

    【運(yùn)維】手把手教你在windows使用Docker搭建Minio[詳細(xì)教程]

    目錄 1什么是Minio 2安裝Docker 3Docker搭建Minio 4.創(chuàng)建Minio容器并運(yùn)行 5.進(jìn)行訪問 6安裝可能出現(xiàn)的問題 ????????MinIO是一個(gè)基于開源的對(duì)象存儲(chǔ)服務(wù)器,MinIO的設(shè)計(jì)目標(biāo)是提供高性能、高可用性和高可靠性的對(duì)象存儲(chǔ)服務(wù)。MinIO可以作為一個(gè)獨(dú)立的對(duì)象存儲(chǔ)服務(wù),也可以在Kuber

    2024年02月06日
    瀏覽(36)
  • 手把手教你在云環(huán)境煉丹(部署Stable Diffusion WebUI)

    手把手教你在云環(huán)境煉丹(部署Stable Diffusion WebUI)

    前幾天寫了一篇《 手把手教你在本機(jī)安裝Stable Diffusion秋葉整合包 》的文章,有些同學(xué)反映對(duì)硬件的要求太高,顯卡太TM貴了。今天我再分享一個(gè)云服務(wù)器煉丹的方法,方便大家快速入門上手,這個(gè)云服務(wù)不需要特殊網(wǎng)絡(luò)設(shè)置,能連接公網(wǎng)網(wǎng)盤,隨開隨用,有3090顯卡,也有

    2024年02月15日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包