<一>创建工程

创建工程在此略过。

<二>基本代码

1、创建一个Verilog modual代码如下:

module main(
input clk,
input rsta,
input wea,
input [ : ] addra,
input [ : ] dina,
output [ : ] douta,
input rstb,
input web,
input [ : ] addrb,
input [ : ] dinb,
output [ : ] doutb
);
device1 mydevice(
.clka(clk),
.rsta(rsta),
.wea(wea),
.addra(addra),
.dina(dina),
.douta(douta),
.clkb(clk),
.rstb(rstb),
.web(web),
.addrb(addrb),
.dinb(dinb),
.doutb(doutb)
); endmodule

代码中元件例化了一个True Dual Port RAM。

2、写测试代码

module mainTest;

    // Inputs
reg clk;
reg rsta;
reg wea;
reg [:] addra;
reg [:] dina;
reg rstb;
reg web;
reg [:] addrb;
reg [:] dinb; // Outputs
wire [:] douta;
wire [:] doutb; // Instantiate the Unit Under Test (UUT)
main uut (
.clk(clk),
.rsta(rsta),
.wea(wea),
.addra(addra),
.dina(dina),
.douta(douta),
.rstb(rstb),
.web(web),
.addrb(addrb),
.dinb(dinb),
.doutb(doutb)
); initial begin
// Initialize Inputs
clk = ;
rsta = ;
wea = ;
addra = 1;//这里为什么是1在下面有解释
dina = ;
rstb = ;
web = ;
addrb = ;
dinb = ; // Wait 100 ns for global reset to finish // Add stimulus here end
always #0.001 clk = ~clk;
always @(negedge clk)
begin
addra = addra + ;
addrb = addrb + ;
dina = dina + ;
end
endmodule

<三>执行结果

在结果图中,前面的100ps数据并没有改变(原因有待进一步查明);

因为web=0一直不变,所以port B是禁止写数据的,而addrb总是比addra小1,这样做的目的就是为了利用port B 的doutb来检测port A在上一次写入的数据是不是正确的写入,即doutb总是显示的port A 在clk上一次的上升沿写入的数据。

Xilinx ISE 14.1中模拟True Dual Port RAM例子的更多相关文章

  1. Ubuntu 14.04 安装 Xilinx ISE 14.7 全过程

    生命在于折腾. 这个帖子作为我安装xilinx ISE 14.7版本一个记录.希望给需要的人一些帮助,这些内容绝大部分也是来源于互联网. 软硬件: lsb_release -a No LSB modu ...

  2. Ubuntu 14.04 安装 Xilinx ISE 14.7 全过程(转)

    reference:https://www.cnblogs.com/tracyone/p/3561781.html 按照ISE后,建立ISE启动连接: 这个帖子作为我安装xilinx ISE 14.7 ...

  3. DUAL PORT RAM应用实例

    作者:桂. 时间:2018-05-14  12:11:00 链接:http://www.cnblogs.com/xingshansi/p/9035522.html 前言 主要是Xilinx 常用模块汇 ...

  4. Xilinx ISE 14.1生成Rom内核并读取Rom中的数据

    <一>建立一个项目readDataFromRom 详细过程参照另一篇文章 http://www.cnblogs.com/LCCRNblog/p/3397666.html <二> ...

  5. Xilinx ISE 14.1利用Verilog产生clock

    <一>建立如下的Verilog Module module myClock( input clock ); endmodule <二>建立 Verilog Test Fixtu ...

  6. Windows 8 64bit Xilinx ISE(14.7) Fix License

    http://www.youtube.com/watch?v=ttPbEcNjdo8 It can work successfully!

  7. [ISE 14.7]Fail to Link the designer导致无法仿真问题

    一.当前配置 操作系统:WIN 8.1 64位 软件:Xilinx ISE 14.7 二.解决方法 首先,似乎64位的binary都有些问题,所以先把ISE Design Suite 14.7这个快捷 ...

  8. Windows 10下Xilinx ISE需要注意的事项。

    一是安装.可以在Windows 10下安装Xilinx ISE 14.7. 详见:https://www.eevblog.com/forum/xilinx/guide-getting-xilinx-i ...

  9. 87.在ModelSim中添加Xilinx ISE仿真库

    在ModelSim中添加Xilinx ISE仿真库 说明: l ModelSim一定要安装在不带空格的目录下,即不要安装在“Program Files”目录下.如作者是安装在D:\softwares\ ...

随机推荐

  1. 我的Java设计模式-工厂方法模式

    女朋友dodo闹脾气,气势汹汹的说"我要吃雪糕".笔者心里啊乐滋滋的,一支雪糕就能哄回来,不亦乐乎?! 但是,雪糕买回来了,她竟然说"不想吃雪糕了,突然想吃披萨" ...

  2. ThinkJS框架入门详细教程(一)开发环境

    一.前端标配环境 1.nodeJS正确安装,可以参考:http://www.cnblogs.com/chengxs/p/6221393.html 2.git正确安装,可以参考:http://www.c ...

  3. ArrayList ConcurrentModificationException

    1.ConcurrentModificationException ConcurrentModificationException 出现在使用 ForEach遍历,迭代器遍历的同时,进行删除,增加出现 ...

  4. Linux入门之常用命令(11)复制cp及scp

    [scp] ================== scp 命令 ================== scp 可以在 2个 linux 主机间复制文件: 命令基本格式:        scp [可选参 ...

  5. ThreadLocal的理解与应用场景分析

    对于Java ThreadLocal的理解与应用场景分析 一.对ThreadLocal理解 ThreadLocal提供一个方便的方式,可以根据不同的线程存放一些不同的特征属性,可以方便的在线程中进行存 ...

  6. Oracle添加含有脏数据的约束

    需求: 一个表的唯一约束被禁用期间,有脏数据进来,当启用约束时失败. 环境: -bash-4.1$ uname -a Linux dbtest1 2.6.32-279.el6.x86_64 #1 SM ...

  7. ajax url参数中文乱码解决方法

    较好的处理办法,对js的url中的中文参数值使用两次encodeURI(),即encodeURI(encodeURI("url的中文参数值")) JS代码: var name=&q ...

  8. C# 多线程、异步线程、线程池相关知识

    /* 线程池ThreadPool类会在需要时增减池中线程的线程数,直到最大的线程数.池中的最大线程数是可配置的. 在双核CPU中,默认设置为1023个工作线程和1000个I/O线程.也可以指定在创建线 ...

  9. 分布式锁的实现(redis)

    1.单机锁 考虑在并发场景并且存在竞态的状况下,我们就要实现同步机制了,最简单的同步机制就是加锁. 加锁可以帮我们锁住资源,如内存中的变量,或者锁住临界区(线程中的一段代码),使得同一个时刻只有一个线 ...

  10. 用FastDFS一步步搭建文件管理系统

    一.FastDFS介绍 FastDFS开源地址:https://github.com/happyfish100 参考:分布式文件系统FastDFS设计原理 参考:FastDFS分布式文件系统 个人封装 ...