quartus之rom的IP测试

1、rom的作用

rom,就是只读存储器,内部数据在下载电路时就已经确认,不能使用信号驱动更改,只能够读取,一般用于比较重要的配置数据。在quartus中,可以直接调用IP核实现该操作。配置文件有hex和mif两种,都可以实现数据的写入。

2、测试方法

测试代码:

  1. `timescale 1ns/1ns
  2.  
  3. module rom_tb;
  4. reg clk;
  5. reg rst_n;
  6. wire [7:0] data;
  7.  
  8. rom U1_tb(
  9. .clk(clk),
  10. .rst_n(rst_n),
  11. .data(data)
  12. );
  13.  
  14. initial begin
  15. clk=0;
  16. rst_n=0;
  17. end
  18.  
  19. always #10 clk = ~clk;
  20.  
  21. initial begin
  22. #1
  23. $monitor($time,,"data=%d",data);
  24. #3
  25. rst_n=1;
  26. #300
  27. $stop;
  28. end
  29.  
  30. endmodule

顶层代码:

  1. module rom(
  2. input clk,
  3. input rst_n,
  4. output [7:0] data
  5. );
  6.  
  7. reg [7:0] address;
  8.  
  9. always@(posedge clk or negedge rst_n)begin
  10. if(!rst_n)begin
  11. address<=8'd0;
  12. end
  13. else if(address==8'd255)begin
  14. address<=8'd0;
  15. end
  16. else begin
  17. address<=address+1'b1;
  18. end
  19. end
  20.  
  21. rom_ip U1(
  22. .address(address),
  23. .clock(clk),
  24. .q(data)
  25. );
  26.  
  27. endmodule

mif文件随便写几个数据就行。目前好像只能写数字进去,字符写入好像不支持,但是有一个ASCII转化的显示。

  1. # run -all
  2. # 1 data= 0
  3. # 30 data= 1
  4. # 50 data= 2
  5. # 70 data=111
  6. # 90 data=255
  7. # 110 data= 6
  8. # 130 data= 7
  9. # 150 data= 9
  10. # 170 data= 7
  11. # 190 data= 22
  12. # 210 data= 0

3、结果分析

测试的结果可以看出rom的数据和mif写入数据的内容一致,仿真成功。在实际使用中,要考虑mif文件的写入方法。

quartus之rom的IP测试的更多相关文章

  1. shell脚本和python脚本实现批量ping IP测试

    先建一个存放ip列表的txt文件: [root@yysslopenvpn01 ~]# cat hostip.txt 192.168.130.1 192.168.130.2 192.168.130.3 ...

  2. Shell学习笔记之shell脚本和python脚本实现批量ping IP测试

    0x00 将IP列表放到txt文件内 先建一个存放ip列表的txt文件: [root@yysslopenvpn01 ~]# cat hostip.txt 192.168.130.1 192.168.1 ...

  3. LoadRunner 使用虚拟IP测试流程

    LoadRunner 使用虚拟IP测试流程 LoadRunner 使用IP欺骗的原因 . 当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量, ...

  4. altera rom ram IP的浅层理解

    1.altera 提供了两种rom :单口rom和双口rom. 官方文档偷图: 单口rom:输出可以配置寄存器寄存再输出,时钟可以输入输出用不同的时钟. 双口rom:输入输出时钟可不同或者A与B的时钟 ...

  5. RHEL7 配置临时IP 测试

    RHEL7 配置或添加临时IP地址测试: [root@rhel7 Desktop]# ip a s enp0s3 ---查看原网卡IP 为192.168.1.7 : enp0s3: <BROAD ...

  6. 修改quartus 配置rom时memory很小的问题。

    我用的是quartus ii 13版本的仿真软件,在做VGA实验时显示用到640*480的图片所以就需要307200*1bit的rom.但是坑爹的megawizard- plug-in-manager ...

  7. Ping N个IP测试网络连通性

    #-----------------------Smokeping移动节点-------------------##! /bin/bashecho "------------- Statin ...

  8. PHP 使用 GeoIP 进行不同国家 ip 测试

    $ip = "67.220.91.30";// USA switch (mt_rand(0, 15)) { case 0:// India $ip = "210.212. ...

  9. mysql all_ip_test局域网IP测试工具,有需要的改一改.

    1 import threading 2 import subprocess 3 import pymysql 4 # threading.Lock() 5 6 7 class Link(object ...

  10. 代理ip 测试

    Line #1218 : 101.232.208.245 - - [16/Jan/2018:02:47:34 +0800] "GET /?xltestdesfs HTTP/1.1" ...

随机推荐

  1. Centos7安装php7.4

    添加 EPEL and REMI 仓库 yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarc ...

  2. ubuntu 23.04 无法联网

    一些参考文章: 解决ubuntu突然无法联网问题 共享主机网络方法: https://www.server-world.info/en/note?os=Ubuntu_22.04&p=squid ...

  3. 构建SatelliteRpc:基于Kestrel的RPC框架(整体设计篇)

    背景 之前在.NET 性能优化群内交流时,我们发现很多朋友对于高性能网络框架有需求,需要创建自己的消息服务器.游戏服务器或者物联网网关.但是大多数小伙伴只知道 DotNetty,虽然 DotNetty ...

  4. Django多方式登录认证

    多方式认证原理 我们平常使用的Django登录认证是django.contrib.auth.authenticate 点进去源码,我们会看到这个函数,真正的认证类是它里面的那个 继续点进去源码,会看到 ...

  5. Taurus.MVC WebMVC 入门开发教程5:表单提交与数据验证

    前言: 在本篇 Taurus.MVC WebMVC 入门开发教程的第五篇文章中,我们将学习如何处理表单提交和进行数据验证. 这是 Web 开发中非常重要的一部分,因为它涉及到用户输入数据的处理和有效性 ...

  6. 【Azure Fabric Service】Service Fabric 托管群集通过 Connect-ServiceFabricCluster 连接时候报错 CertificatedNotMatched

    问题描述 Service Fabric 托管群集, 使用Key Vault中证书,把证书导入到本地安装后,使用该证书的 Thumbprint 作为指令 Connect-ServiceFabricClu ...

  7. 【Azure 应用服务】如何从App Service for Linux 的环境中下载Container中非Home目录下的文件呢?

    问题描述 在App Service for Linux的环境中,我们能通过SSH进入到Container的环境中,并且可以通过在kudu站点的URL后面添加 /newui 打开一个适用于Linux环境 ...

  8. 百度爱番番基于图技术、流式计算的实时CDP建设实践

    导读:随着营销3.0时代的到来,企业愈发需要依托强大CDP能力解决其严重的数据孤岛问题,帮助企业加温线索.促活客户.但什么是CDP.好的CDP应该具备哪些关键特征?本文在回答此问题的同时,详细讲述了爱 ...

  9. STL-RBTree模拟实现

    #pragma once #include<assert.h> #include<iostream> using std::cout; using std::endl; usi ...

  10. Jmeter参数化-用户自定义变量

    一  首先我们先来了解下jmeter 做参数化的目的: 1通过参数化来集中管理配置和测试数据 2通过参数化实现数据驱动测试 二 线程组添加配置元件中的用户自定义变量 添加变量名称,变量值 三 使用变量 ...