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

相关文章

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

vcpkg子包路径批量获取

获取vcpkg 子包的路径,并拼接为set(CMAKE_PREFIX_PATH “拼接路径” ) import osdef find_directories_with_subdirs(root_dir):# 构建根目录下的 "packages" 文件夹路径root_packages_dir = os.path.join(root_dir, "packages")# 如果 "packages"

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

android两种日志获取log4j

android   log4j 加载日志使用方法; 先上图: 有两种方式: 1:直接使用架包 加载(两个都要使用); 架包:android-logging-log4j-1.0.3.jar 、log4j-1.2.15.jar  (说明:也可以使用架包:log4j-1.2.17.jar)  2:对架包输入日志的二次封装使用; 1:直接使用 log4j 日志框架获取日志信息: A:配置 日志 文

17 通过ref代替DOM用来获取元素和组件的引用

重点 ref :官网给出的解释是: ref: 用于注册对元素或子组件的引用。引用将在父组件的$refs 对象下注册。如果在普通DOM元素上使用,则引用将是该元素;如果在子组件上使用,则引用将是组件实例: <!-- vm.$refs.p will be the DOM node --><p ref="p">hello</p><!-- vm.$refs.child will be the c