lattice fpga ddr3 读写控制

Lattice ddr3教程全攻略之仿真篇 Lattice ddr3教程全攻略之仿真篇                                                                                                   By: BACKKOM                                                                    阅读详情

Lattice FPGA ECP5 DDR3 调试报告

环境:WIN10、Diamond 3.11 (64-bit)、Verilog语言。

 

一、创建Diamond工程

1、创建一个存放工程的文件夹。根据个人喜好,注意不要有中文路径。

2、打开Diamond

3、创建工程,File->New->Project

4、点击Next

5、创建工程名字,文件夹选择第1步创建的文件夹。

6、暂时没有可以添加的文件,点击Next。

7、选择板卡所对应的FPGA型号,这里我手中板卡的型号为LFE5U-25F-8BG381C。具体型号根据自己手中板卡选择。

8、选择综合工具,第一种为第三方工具,不是Lattice公司的,第三种为Lattice公司自己的工具。

9、创建工程的一些基本信息,从中可以看出:工程名字、工程存放地址、生成文件的文件夹、FPGA芯片的型号、综合工具。和自己的板卡对照下,没问题就点击Finish。

10、工程创建完成,和ISE、Vivado还是有很大的区别。在怎么不一样也是需要用Verilog写程序。慢慢熟悉熟悉感觉它还是不错的一个工具。

 

二、生成控制DDR3的IP核,也可以自己写一个对DDR3控制的程序,这对大神们来说小菜一碟,但对我这种(菜笨)还是想想就行了。这山有点高,不好翻。

1、选择DD3控制IP,右击impl1->Add->New->File

2、选择Clarity Designer,然后名字就是来个自己喜欢的。

3、然后选择对应的IP核。(如果第一次使用   ,可能找不到这个IP,这就需要你下载一个,然后安装下。)左边是介绍这个IP的一些文档,很重要,不管看懂看不懂先下载下来再说。

4、双击IP之后,对这个IP起个名字。

5、选择与板卡上DDR3对应的模板。我手上板卡是2G的,板卡FPGA是-8级别的,单颗DDR3,DQ16,X16。(FPGA是-8级别DDR3是可以跑到400M的,-6就是300M,个人理解,仅供参考)。

6、配置完如图所示,实际情况根据自己板卡做适当的修改。点击Configure。

7、这里说一点,正常的IP调用这里会出现一些信息的,但是DDR3没有,是因为Lattice使用这个IP需要收费的,这里我们只能试用。所以在这里不要大惊小怪。点击Close。

8、软件的下边会打印很多信息。这个没有研究是什么,我们只用知道他是在生成IP的过程就行。

9、下边出现Successfully,证明我们这个IP已经生成完成。点击保存按钮。

10、问你是不是要添加到工程中,点击Yes。

11、IP出现在了工程中。到这里我们的IP已经生成完成。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三、控制IP

1、创建一个顶层文件,右击Impl1->Add->New File

2、起个名字,点击New。

3、写代码进去,使用DDR3第一步,你先看看这个DDR3会不会初始化完成,标志呢就是Init_done信号。在xilinx中如果初始化完成后这个信号会一直拉高。这里不知道会怎么样,看手册,就是生成IP时下载的那个手册。

4、看手册显示的是你需要先对Init_start信号进行一个拉高的过程,等Init_done拉高了,在拉下来就行了。手册是这么说的,到底是不是真的,我们需要试下才能知道是不是真。下来开始写代码。这里说一点这个Diamond软件的调试工具不太好用,(不能说不好用,只是自己还没有使用熟练。)

5、由于代码过长,这里只粘贴出来一部分。然后保存,点击Synthesize Design。

6运行成功后,添加管脚约束绑定,这里Lattice在你创建工程时,已经给你创建了对应的文件。点击,会进入到引脚绑定的界面。

7、按照原理图进行填写,这里说一点,Lattice和XILINX对管脚的约束有一点差别,差分信号,XILINX关键约束对PN都需要进行绑定,而Lattice不需要,只需要对P进行绑定就行了。不知道这一点的感觉很不可思议,DDR3的IP核的数据同步信号和输入时钟信号等一些差分对,在IP核的框图上看到的命名是差分对,但是生成IP后调用的却是单端信号。这里需要注意。绑定完之后就是编译综合了。

8、编译完成之后就会生成一个BIT文件,这就可以下载了,但是下载之后你怎么知道对不对呢?所以你需要抓信号,抓刚才的Init_done信号。这就需要工具,XILINX的是ChipScope,Lattice使用的Reveal工具。右击Impl1->Add->New File

10、选择Reveal Project Files,来个喜欢的名字。点击New。

11、添加你需要抓取的波形。

12、设置下触发

13、点击保存,

14、点击红框的按钮,点击OK

15,、然后重新编译下。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

四、下载调试

1、下载程序,点击

2、点击OK

3、点击扫描下载器,板卡上电准备下载。

4、点击红框中的按钮,开始下载。

5、显示PASS,下载成功。然后调用Reveal工具,点击。

6、依次点击红框按钮,选择你创建的调试核。

7、点击OK

8、点击红框中的按钮。

9、出现错误,排查错误。

10、复位有些问题。修改下,重新生成bit文件,下载。

11、可以看到Init_done_pos拉高了,证明DDR3复位初始化完成,到这一步基本能确定板卡没问题。

 

 

 

 

 

 

 

 

 

 

 

五、对板卡DDR3进行读写操作。

1、编写读写文件,

2、添加需要抓取的波形,点击编译,生成bit文件,下载,抓取波形。

3、DDR3读写测试完成。

 

 

结论、

从XILINX转向Lattice,期间总是有些不适,掌握一个软件那是不可能的,只能说使用这个软件越来越熟练,Lattice有优有缺,这些都不是像我这样的人所能评价的。我们只能保持一颗积极向上学习的心态就行,漫漫长路,需要的是一步一个脚印走下来的,保持初心,一切会好的。

 

LATTICE芯片烧录FW的方法 Lattice CPLD,是板载GPIO控制芯片,我使用的这款LCMX0256C,上电后支持两种模式,默认高电平输出、或者默认全低电平输出,如果需要切换模式,需要刷FW,本文介绍了一种刷FW的方法。 阅读详情

相关推荐

Lattice DDR3 IP核与以太网数据交互实战:从约束优化到性能验证

本文详细介绍了Lattice DDR3 IP核与以太网数据交互的实战经验,重点解析了DDR3 IP核的基础配置、控制命令时序、引脚约束优化策略及时序收敛技巧。通过整合数据读写操作与以太网协议栈设计,实现了高速数据采集与稳定传输,并分享了性能测试与逻辑分析仪调试的有效方法,助力开发者规避常见陷阱,提升系统可靠性。

neovim7hacker的博客 204

LATTICE FPGA DDR3 读写控制开发笔记

LATTICE ECP3 DDR3 读写操作

yufengyeweiliang的博客 3106

不止于点亮LED:用Diamond+ModelSim仿真Lattice FPGA的IP核与复杂时序

本文深入探讨了如何利用Lattice Diamond与ModelSim联合仿真环境进行FPGA设计的复杂时序验证。从PLL IP核的基础验证到DDR3控制器的高级仿真,再到跨时钟域(CDC)问题的系统化排查,提供了完整的解决方案和实战技巧。文章特别强调了在工业级应用中,通过专业Testbench编写和覆盖率分析来确保设计可靠性的方法论。

weixin_42522148的博客 349

lattice ddr3ip核调试经验分享,已通过以太网数据读写测试

上图是使用逻辑分析仪对数据读写进行抓取,突发次数为32次,IP核数据端一次发送64个64bit数据的测试,时钟为150Mhz,从命令开始到数据写入传输完74时钟周期,数据读取时间需要86时钟周期。通过ofly_burst_len接口的值来设置数据长度,设置为“0” 时突发长度为4,设置为“1”时突发长度为8。在IP核控制命令后,需要对DDR3连接引脚进行约束,这块可以参考调用IP核时,本工程其部分路径为Ddr3\ddr_p_eval\Ddr3\impl\synplify\Ddr3_eval.lpf。

AGCYEH的博客 1177

Lattice USB下载线使用说明及CPLD程序烧写

目录 1. 下载并安装ispLEVER Classic 软件 1.1 软件下载 1.2 软件的安装 2. Lattice USB下载线介绍 2.1 实物介绍 2.2 下载线驱动安装 2.3 下载线使用中的注意事项 3. 使用下载线给LC4032V烧写程序 3.1 连接下载线 3.2 识别下载线 3.3 添加器件型号及待下载程序目录 3.4 烧写程序 4. 参考链接 1....

snaking616 2万+

11、FPGA技术:性能、架构与设计策略解析

本文详细解析了多种FPGA技术,包括Intel Stratix® 10的HyperFlex™架构、Xilinx UltraScale™系列的内存和DSP组织、Lattice iCE40isp的低功耗特性,以及MicroSemi RTG4的可靠性设计。文章还探讨了基于FPGA的DSP系统设计策略,并对比了不同FPGA系列的关键特性,为读者提供了全面的FPGA性能、架构及应用指南。

sony5的博客 75

Lattice DDR3 IP核与以太网数据联调实战:从约束优化到性能验证

本文详细介绍了Lattice DDR3 IP核与以太网数据联调的实战经验,涵盖从复位策略、突发读写机制到引脚约束优化的全过程。重点解析了DDR3数据读写性能的优化方法,通过实际测试验证了读写带宽达到理论值的86%和74%,为FPGA项目中高速数据存储与传输提供了可靠的解决方案。

h9j8k7l6m5n的博客 877

数字IC后端实现之快速获取innovus中drv violation的所有net list

数字IC后端设计实现之快速获取innovus中drv violation的所有net list

weixin_37584728的博客 3347

采用FPGA IP实现DDR的读写控制的设计与验证

随着高速处理器的不断发展,嵌入式系统应用的领域越来越广泛,数字信号处理的规模也越来越大,系统中RAM规模不断增加,比如视频监控、图像数据采集等领域,图像处理的实时性对RAM带宽的要求不断增加,传统的SDRAM在带宽上已经逐渐无法满足应用要求,DDR SDRAM(双倍速率SDRAM

sean_hy2009的专栏 4887

ADS入门学习笔记——射频振荡器的设计

振荡器是射频系统中的基本部件之一,可以将直流功率转换为射频功率,在特定的频率点建立起稳定的正弦振荡,成为所需的射频信号源。

weixin_42126696的博客 8942

从谱峰搜索到多项式求根:Root-MUSIC算法原理与MATLAB实践

本文深入解析Root-MUSIC算法在阵列信号处理中的原理与应用,通过多项式求根替代传统MUSIC算法的谱峰搜索,显著提升计算效率和精度。文章详细介绍了算法核心思想、MATLAB实现步骤及工程优化技巧,帮助读者掌握这一高效的DOA估计方法。

weixin_30832143的博客 80

LATTICE DDR3调试心得之IP核的作用

本文为明德扬原创文章,转载请注明出处! 最近公司承接了一个车载视频拼接的项目,该项目使用到了LVDS高速接口和DDR3接口,摄像头采集的视频图像数据需要先存入DDR3中然后与通过LVDS传输的主机视频数据进行拼接输出,最终在屏幕上显示画中画的效果。在调试DDR3的过程中,我有一些使用心得,特分享给大家。 在之前的文章中我已经介绍过Lattice DDR3的IP核生成使用方法,以及接口信号。也许有许多人不是很明白,明明有DDR3的IP核,为什么还要添加这么一个接口模块,添加了这么一个接口模块主要是用来做什

1811

【算法实战】Keystone变换:从原理到MATLAB实现的距离走动校正

本文深入解析Keystone变换在雷达信号处理中的距离走动校正应用,从原理到MATLAB实现全面讲解。通过三种实现方法(DFT+IFFT、Sinc插值、Chirp-Z变换)的对比分析,结合实战案例展示如何有效解决高速目标导致的距离单元跨越问题,提升多普勒频谱聚焦质量。

weixin_29055699的博客 289

镁光ddr3布线规则_lattice_ddr3调试经验分享(三)DDR速率计算

软件:lattice diamond 3.5 , DDR3 SDRAM Controller3.1 modelsim10.2c硬件:ecp3 -8 镁光或者是海力士的DDR3Lattice的DDR控制器是龟速,上面一篇已经提到了。所以没有xilinx的那么随心所欲了。墨迹的原因有:1,Lattice的DDR控制器在ddr的data位宽是16的情况下控制器的数据位宽只有64bit。写...

weixin_29513805的博客 1037

zabbix 监控EMC存储

经过搜索,找到了脚本地址,该项目应该是模板原作者创建的,该项目也有zabbix模板,和上面的应该是相同的,我用的是上面的模板。./unity_get_state.py --api_ip='X.X.X.X' --api_port='443' --api_user='zabbix' --api_password='PASSWORD' --storage_name="zabbix web前端配置的主机名" --discovery。修改权限,给zabbix用户执行权限,模板调用时以zabbix用户执行。

wangyfde的专栏 3753

LangFlow开源神器:拖拽构建AI Agent与MCP协议集成实战

LangFlow 15万星开源神器:拖拽搭建 AI Agent,一键部署 API / MCP / JSON 在AI应用开发领域,传统编码方式往往需要处理复杂的API调用、数据处理和流程编排,这让很多开发者望而却步。LangFlow作为GitHub上获得15万星的开源项目,通过可视化拖拽的方式彻底改变了AI Agent的开发体验。本文将完整介绍如何使用LangFlow快速构建功能强大的AI Agent,并实现API、MCP协议和JSON配置的一键部署。 1. LangFlow与AI Agent核心概念解析 1

weixin_33717117的博客 930

DDR3基本概念3 - 复位初始化实战举例Lattice DDR3 IP仿真

1) 通过lattice clarify designer 配置DDR3 IP,最新版本是3.1版本 2) 配置完成后,自动生成了一套包括testbenches在内的仿真环境。 以上1和2的详细过程,将在另一篇文章中说明。 3)启动仿真 且记: Lattice DDR3的仿真环境中各个rtl使用了不同的timescale,所以在仿真时,必须保留每一个rtl中的timescale,...

tbzj_2000的博客 2359

微信小程序 - {errCode: 10008, errno: 1500104, errMsg: “writeBLECharacteristicValue:fail write characteris

微信小程序errCode: 10008, errno: 1500104, errMsg: "writeBLECharacteristicValue:fail write characteristics error. 10008, errMsg=The value's length is invalid.",uni-app微信小程序报错,uniApp小程序调用蓝牙api报错,向低功耗蓝牙设备的某个特征写入数据时错误,UniApp微信小程序蓝牙API调用报错10008解决方案,蓝牙设备进行通信时,向设备写入数据

🏆 前端领域优质创作者 4428

推荐轻量级AXI-4 DDR3控制器

推荐轻量级AXI-4 DDR3控制器 在FPGA设计中,寻找一款既高效又节省资源的内存控制器是至关重要的。这就是我们向您推荐Lightweight AXI-4 DDR3 Controller的原因,它是一款专为低带宽需求和重视简洁与逻辑单元利用率的设计而打造的Verilog实现的DDR3内存控制器。 项目介绍 这款IP核旨在在那些FPGA内部时钟速度成为限制因素而非外部DDR内存接口速度的项目中发...

gitblog_00051的博客 549

矩阵奇异值分解算法(SVD)的导数 / 灵敏度分析

设矩阵X∈Rm×nX∈Rm×nXUΣV⊤XUΣV⊤U∈Rm×mU∈Rm×m为左奇异向量矩阵;V∈Rn×nV∈Rn×n为右奇异向量矩阵;Σdiag⁡σ1σ2σrΣdiagσ1​σ2​σr​为奇异值对角阵(rrank⁡XrrankX我们关心:当XXX发生微小扰动dXdX时,UΣVUΣV如何变化?dXdUΣV⊤dX。

qq_36812406的博客 1748

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Lattice ECP3系列DDR3多端口调试记录

lattice DDR3多端口读写

zc3539591的博客 280

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

从DDR3 IP核调试看硬件设计中的时序约束艺术:以Lattice为例的实战避坑指南

本文以Lattice DDR3 IP核调试为例,深入探讨硬件设计中时序约束的核心原理与实战技巧。通过分析复位时序、突发传输配置和引脚约束等关键环节,提供避免数据不一致、间歇性故障的解决方案,帮助工程师掌握DDR3时序约束艺术,提升系统稳定性和性能。

moon9的博客 188

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

openFPGALoader全面指南:支持200+款开发板的开源FPGA编程工具

在FPGA开发领域,选择合适的编程工具往往决定了项目的开发效率。传统的厂商专用工具虽然功能完善,但存在许可证限制、平台依赖性强等问题。openFPGALoader作为一款开源的通用FPGA编程工具,正以其跨平台、多厂商支持的独特优势,成为越来越多硬件工程师的首选。 openFPGALoader是一款功能强大的通用FPGA编程工具,支持Xilinx、Intel/Altera、Lattice、Gow

gitblog_01045的博客 790
上一篇: Widora 串口收发
下一篇: Aspect Ratio 4:3与Aspect Ratio 16:9
DXD_xiaoding
博客等级 码龄9年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值