LATTICE进阶篇DDR2--(1)获取官网DDR2例程并仿真

2024-03-31 04:04

本文主要是介绍LATTICE进阶篇DDR2--(1)获取官网DDR2例程并仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

本章主要讲述如何从官网下载DDR2的DEMO例程,并将例程的仿真运行起来。

官网的DEMO在Diamond工程里是没有调用任何任何IP核的,只是在仿真的时候调用了CORE文件夹下的IP核源文件进行仿真,该DEMO工程主要是拿来产生仿真波形,对比IP核数据手册学习DDR2的控制时序,在真正的工程中,我们是需要单独去配置调用IP核的。

器件:Lattice ECP3 

环境:win10 + Diamond3.13

一、官网下载一个DDR2demo工程

其实在建立DDR2的IP核后,DDR2的IP核文件夹下是自带相关仿真例程的,虽然该例程工程比较简单,但编写的仿真文件包含东西比较多,复杂且不便于理解,

所以先从官网下载一个简单的ddr2 demo工程入手

PS:除了demo,记得下载IP核用户手册,后期会用到。

https://www.latticesemi.com/Search.aspx?q=DDR2

二、观察demo工程结构及demo硬件文档

 2.1 demo文件结构如图(DDR2 Demo for the LatticeECP3 Serial Protocol Board - demo files)

2.2 熟悉demo板硬件框架(DDR2 Demo for the LatticeECP3 Serial Protocol Board.pdf)

demo板框图含义为---通过配置8路拨码开关,配置DDR2工作在不同的模式,

输出的8路LED灯代表DDR2运行在不同的工作状态。

打开目录下的工程文件--ddr2_demo\user_logic\par\ddr2_ecp3_spb.ldf,可对代码有大致了解。

三、运行demo仿真工程

3.1直接调用ddr2_ecp3_demo.do,观察仿真波形

为了后续理解代码,建议先将仿真工程建立起来,流程如下:

a.打开仿真脚本文件(ddr2_ecp3_demo.do),将diamond路径改为本电脑安装路径

b.打开modelsim,File->Change Directory,选择ddr2_ecp3_demo.do脚本所在文件夹

c. Tools->tcl->Execute macro 选择仿真脚本文件(ddr2_ecp3_demo.do)并打开

d.仿真执行完毕后,观察err_det 信号,正常的结果应该是该信号一直为低。

其实根据ddr2_ecp3_demo.do所示,我们可以手动找到官方例程仿真所需的所有文件。

根据这个我们后期仿真自己的DDR2工程的时候,可以通过导入相对应的文件 新建仿真工程进行仿真。

当然感兴趣后期可以自己根据该do文件 研究一下do文件相关的写法。

附录:

本教程参考过的文章链接如下:

Lattice 的 DDR IP核使用调试笔记之工程建立 https://www.cnblogs.com/fhyfhy/p/5224208.html

Lattice 的 DDR IP核使用调试笔记之DDR 的 仿真 https://www.cnblogs.com/fhyfhy/p/5259722.html

Lattice ddr3教程全攻略之仿真篇 Lattice ddr3教程全攻略之仿真篇_lattice实验-CSDN博客

Lattice ddr3教程全攻略之时序约束篇 Lattice ddr3教程全攻略之时序约束篇_lattice时序约束-CSDN博客

这篇关于LATTICE进阶篇DDR2--(1)获取官网DDR2例程并仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/863353

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Spring Boot中获取IOC容器的多种方式

《SpringBoot中获取IOC容器的多种方式》本文主要介绍了SpringBoot中获取IOC容器的多种方式,包括直接注入、实现ApplicationContextAware接口、通过Spring... 目录1. 直接注入ApplicationContext2. 实现ApplicationContextA

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +