Lattice开发工具 diamond总结


2. LVDS路视频:
3. framebuffer仿真路径:
4. framebuff_beh.v 参数:
5. framebuffer IP问题:
6. CVO 控制逻辑,参考DIS2 adaptor board:
6.1 S6MCB2RGB.vhd:
6.2
7. 编译参考工程报错,解决办法:
11. reset 脚在bank 8, 在lpf 里面约束为1.8v,但是在diamond 里面编译的时候,报1.8v ,2.5v冲突;
12.在使用中发现,当把 rvl 加进去,编译完上板,烧录bit,打开 reveal analizer,报错;
13. 在Diamond 里面插入 serdes 调试核,在线调试serdes:
14. Lattice edp issue:
15. reveal 功能异常:
16. k28.5 K码:
17. serdes 的参考时钟:
18. Lattice diamond modelsim 仿真库源文件:
19. Lattice FPGA 烧录,下载
19.1 在工程里面要设置系统配置电压:
19.2 固化失败:
19.2 关于FPGA加载固化的镜像:
19.3 第一次固化成功后,第二次固化更新失败:需先擦除再固化
20. perforce 上传下载问题:
21 . reveal 报错:
22. diamond 编译工程失败,没有任何错误提示
23. 利用DDR3 里面多余的PLL资源:
24. waning "has no load"
25. 在 hierarchy 下可以确定IP有没有编译进去;
26. 注意: diamond 的 IP 输出信号不能直接在 reveal里面引出;
27. diamond编译报告文件
28. reveal 加多个调试核的问题

1. PLL

EDP 的AUX clk要求是16MHZ, data rate 是1mbps。 
100MHZ时钟源,Lattice的PLL直接分是不能分出16MHZ的,大概是15.8mhz; 
如果用serdes 的135mhz直接分,可以分出16.1mhz;(CLKOP) 
经过尝试,可以先CLKOP分出27MHZ,再用OS分出16mhz,即可满足条件; 
有可能是先用CLKOP分的的频率是27mhz,导致VCO的频点范围缩小导致的。

2. LVDS路视频:

      无需 2个像素转成1个像素,因为FPGA的LVDS端口输出是按两个像素并行输出的;

3. framebuffer仿真路径:

D:\......\framebuff\frame_buffer_eval\framebuff\sim\modelsim\scripts

4. framebuff_beh.v 参数:

frame_buffer_core_framebuff 
.MAXFWIDTH -> 800 
.MAXFHEIGHT -> 480

5. framebuffer IP问题:

发现,改了frame buffer IP的参数配置,在generate, IP底层生成的param.v 等代码没有变化,即没有生效;

6. CVO 控制逻辑,参考adaptor board:

6.1 S6MCB2RGB.vhd:

    TransferData <= not SrcFifo_Empty when (DstFifo_Full = '0') else
    not SrcFifo_Empty when (SrcFifo_Flush = '1') else '0' ;

6.2

     SrcFifo_Flush <= '0';
    DstFifo_Flush <= '0';
   ------------------------------------------------------------------------------------
   -- stm for data transfer from mcb to fifo
   ------------------------------------------------------------------------------------

7. 编译参考工程报错,解决办法:

参考工程,因为在我的本地解压路径和他的工程路径不一致,所以编译的时候报错,需要双击“strategy1”改“Macro search path”:

11. reset 脚在bank 8, 在lpf 里面约束为1.8v,但是在diamond 里面编译的时候,报1.8v ,2.5v冲突;

  解决: 在GUI 里面设定bank8 电压为 1.8v;
  原因: bank8 是 config bank,默认是2.5v电压,但是不在lpf 里面显示电压,要在GUI手动改成1.8V;

 

12.在使用中发现,当把 rvl 加进去,编译完上板,烧录bit,打开 reveal analizer,报错;

-> 原因:rva 与 rvl 没有关联起来; 
-> 分析: 由于工程中存在“rvs”,“trc”等残留,导致新建“rva”没有关联“rvl”; 
-> 规避:在每次新建rva 的时候,要先删除与 rvl 同目录下残留的“rvs”,“trc”(此步骤很关键,否则不会弹出“getting started”窗口); 
然后关联 rvl 文件; 
-> lattice reveal analyzer 使用步骤:

    1. 编译工程;
    2. 新建rvl,点击insert
    3. 全编译;
    4. 烧录 bit;
    5. 在“rvl”目录下检查是否有残留“*.rvs”,"*.trc",一定要删掉;
    5. 点击“reveal analyzer” ,弹出窗口,如下图,无需关联xcf,需关联rvl文件,保存;
    6. 在 “reveal analyzer”GUI添加信号,trigger;
    ![](index_files/1526621232633b5125708-b90c-48ec-907c-b02d2ce43469.png)


 

13. 在Diamond 里面插入 serdes 调试核,在线调试serdes:

  • 1 打开 PCS ip, 使能 serdes 在线调试口,注意在代码里面要把 sci 口引出 
  • 2 在 reveal 里面添加serdes 调试核;设置 时钟为serdes恢复时钟,复位; 
     
  • 3 在 planner里面placment:拖放至PCS pin; 
  • 4 全编译后,上电,烧录bit文件,打开 reveal,打开serdes 调试界面,可是看到serdes lock状态指示;可以更改参数; 

14. Lattice edp issue:

Dino提供的版本,当在edp GUI使能“enhanced frame”功能的时候,serdes输出异常,edp无输出; 
原因: 在edp IP内部,有两条路涉及到training,1. 使能 GPU aux,则edp training用外部的mico32控制training过程;2.disable GPU aux口,则使用edp内部的状态机来training;目前不用外部cpu来training,使用内部硬逻辑状态机来控制training,由于状态机不支持“enhanced frame”,所以当rx 配置项告诉tx 支持 enhanced frame(DPCD内容),但是实际逻辑rx 侧是不支持 “enhanced frame”的,造成tx 侧发送“enhanced frame”的时候,rx 侧无法解析,所以edp rx 没有输出; 
注意项:目前阶段,edp IP功能不全,注意后面要disable “enhanced frame”和 “GPU AUX”;

15. reveal 功能异常:

发现Dino 调试好的版本拷贝到我的PC,在reveal中抓取信号,serdes输出信号可以抓到,但是抓取不到edp输出的sof等信号;重新编译工程,依然抓取不到信号;怀疑是软件和PC的问题;

16. k28.5 K码:

SERDES 调试为什么要看K码?

17. serdes 的参考时钟:

目前第一版serdes 参考时钟没有走专用的serdes参考时钟通道,serdes的恢复时钟可能不稳定;Dino建议在第二版保留原有serdes参考时钟的pin,并增加serdes的专用参考时钟脚,把时钟源接到专用脚;
差异: 不走专用serdes时钟脚,时钟经过fibre路径,质量可能变差;
走专用serdes参考时钟脚,参考时钟直接到PHY,质量可能更好,但有可能容易受到干扰;

18. Lattice diamond modelsim 仿真库源文件:

C:\lscc\diamond\3.10_x64\cae_library\simulation\verilog\ecp5u 
C:\lscc\diamond\3.10_x64\cae_library\simulation\verilog\pmi

19. Lattice FPGA 烧录,下载

19.1 在工程里面要设置系统配置电压:

19.2 固化失败:

由于电路设计错误,CFG模式应该是“010”(master模式),硬件设计成“110”,rework后解决;

19.2 关于FPGA加载固化的镜像:

默认上电不需要SOC干预加载,Program_N脚是依赖于上电power up的瞬间,产生低到高的跳变,所以只需保证 promgramN,DONE,INIT 这三个脚是上拉即可。注意这三个脚是 open drain,不是简单的IO输入输出;

19.3 第一次固化成功后,第二次固化更新失败:需先擦除再固化

由于上电后,FPGA片内有程序运行,可能会引起FPGA固化失败(是不是有些PIN与烧录有关pin导致待查?),所以,在固化前先切换到"JTAG 1532 MODE", 执行“erase” 操作(擦除片上程序),再切回到 “SPI flash bakground mode”,执行固化;后面再确认是不是否是插入reveal导致;

 

20. perforce 上传下载问题:

上传后再下载到本地,发现过程需要重新设置,可能是diamond软件问题,下载后一些配置会丢失,导致编译失败 
exclude sbx文件 :

设置top文件:

21 . reveal 报错:

因为SOC侧没有给FPGA置位,导致FPGA没有正常工作,下载完bit文件后,运行reveal 报错;

22. diamond 编译工程失败,没有任何错误提示

应该是diamond问题,一般是语法问题,可以在modelsim里面直接编译 裸的.v顶层文件(只需编译这一个文件,无需添加IP等),利用modelsim来做语法分析纠错;

23. 利用DDR3 里面多余的PLL资源:

由于项目最终用的是 ECP5-25的芯片,只有两个PLL资源(DDR3 controller占用一个,LVDS输出占用一个),为了充分利用PLL资源,考虑把DDR3 controller里面的pll删除,自己手动例化再添加到ddr3 controller里面。 
自己例化的好处是,可以自由配置输出,在GUI界面可以看到实际的频点。注意原DDR3 IP里面有两个PLL,一个是PLL原语(pmi_pll_fp),一个是PLL(ddr_pll_inst1),效果是一样的。 
top层关系: ddr3_ip_inst/ddr3_sdram_mem_top_wrapper_inst1.v/ddr_clks_inst1/pmi_pll_fp 
-> 替换成自己的例化的IP;

24. waning "has no load"

25. 在 hierarchy 下可以确定IP有没有编译进去;

 

26. 注意: diamond 的 IP 输出信号不能直接在 reveal里面引出;

27. diamond编译报告文件

在implement目录下:.par .twr文件;

28. reveal 加多个调试核的问题

  1. 现象:在调试中加了多个reveal核,编译报错,

32. diamond IP: sbx打不开:
  如果IP目录下面对于的ngo丢失,会导致双击sbx文件后无法打开GUI进行 config,所以当sbx文件无法打开时,先确认是否IP目录下ngo文件丢失了,如果ngo丢失了,把ngo文件放到对于目录下,即可打开IP并config;

 
 

  • 2
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Lattice Diamond是一款现代化的集成开发环境(IDE),用于设计和开发Lattice半导体器件。它提供了一个丰富而强大的工具集合,可以帮助设计工程师在硬件开发过程中简化流程、提高效率。 该工具的说明手册详细介绍了Lattice Diamond的各个功能和使用方法。手册内容包括软件安装步骤、界面操作指南、工程管理、设计流程以及各种高级功能的使用说明。 首先,手册介绍了软件的安装和配置步骤,包括如何下载和安装Lattice Diamond软件,以及如何进行基本的配置和设置。这些步骤非常详细,帮助用户快速上手并正确配置软件环境。 其次,手册介绍了Lattice Diamond的用户界面和操作指南。它详细说明了软件的各个功能区域,如项目导航栏、设计视图和资源管理器,以及各种工具和面板的使用方法。这些说明使用户能够灵活地浏览和操作软件界面,提高工作效率。 手册还介绍了Lattice Diamond的工程管理功能,包括如何创建新的工程、导入和导出工程文件、管理设计约束和设置器件参数等。这些功能的说明帮助用户组织和管理设计项目,确保设计的顺利进行。 除了基本功能外,手册还详细介绍了Lattice Diamond的高级功能,如逻辑合成、布局布线、时序分析和仿真等。这些功能的说明帮助用户深入了解和运用Lattice Diamond的强大功能,从而优化设计和验证流程。 总之,Lattice Diamond说明手册是一份非常有价值的资料,它提供了全面而详细的介绍,帮助用户快速上手并充分利用Lattice Diamond的各种功能。无论是初学者还是有经验的设计工程师都可以在这个手册中找到所需的信息,并提高设计效率和质量。 ### 回答2: Lattice Diamond 是一种综合性的设计工具,用于开发可编程逻辑器件(FPGA)的设计。它提供了一个集成的平台,可以帮助设计者从概念到实现,并最终完成他们的设计。 Lattice Diamond 提供了直观且易于使用的用户界面,方便设计人员进行各种设计任务。该工具支持各种设计流程,包括硬件设计、布局与布线、仿真以及编程等。用户可以通过Lattice Diamond导航面板轻松地访问所有的设计工具和功能。 设计人员可以利用 Diamond 内置的集成开发环境(IDE)进行高级综合、逻辑合成以及组合。此外,Diamond 还提供丰富的库文件和模块,方便用户快速构建并验证他们的设计。 Lattice Diamond 还具备先进的布局与布线功能,它能够根据设计约束和目标性能优化电路板的布局以及信号的传输。这有助于设计者在不同的设备中实现最佳的性能和可靠性。 针对仿真与验证方面,Lattice Diamond 提供了强大的功能和工具,设计人员可以使用内置的仿真工具进行逻辑仿真和时序分析。此外,设计人员还可以使用Diamond IDE集成的第三方仿真工具进行更复杂的验证工作。 最后,Lattice Diamond 提供了便捷且可靠的编程和调试功能,使设计人员能够方便地将他们的设计下载到目标设备上并进行调试和验证。 总而言之,Lattice Diamond 是一个功能强大、易于使用且全面的设计工具,为设计人员提供了构建和开发 FPGA 设计的一站式解决方案。 ### 回答3: Lattice Diamond是一款针对Lattice FPGA器件的设计工具套件,该套件为工程师提供了一个全面的开发环境,帮助设计人员快速、高效地开发FPGA设计。 Lattice Diamond说明手册详细介绍了该工具套件的功能和使用方法。手册分为多个章节,包括安装说明、开始使用指南、设计流程、工具功能介绍、实用技巧和附录等内容。 手册首先介绍了Lattice Diamond的安装过程,指导用户如何下载安装软件,并提供了系统要求、许可证使用和注册等信息。接着是开始使用指南,说明了如何创建新项目、导入设计文件以及设置工程参数等步骤。 设计流程一节详细介绍了设计工具的工作流程,涵盖了从设计输入到生成比特流文件的全过程。手册指导用户如何进行综合、布局、布线、时序分析和生成比特流等关键步骤。 工具功能介绍部分对Lattice Diamond的各个工具进行了全面的介绍和说明。其中包括综合工具用于将设计描述转化为逻辑电路网表;布局和布线工具用于分配资源和连接器件中的逻辑单元;时序分析工具用于确认设计在不同时钟频率下的工作状态;比特流生成工具用于生成可下载到FPGA器件的比特流文件等等。 手册还提供了一些实用技巧,帮助用户更好地利用Lattice Diamond进行设计。例如,如何调整时序约束以提高设计性能;如何利用自动布局和布线来优化设计布局;如何进行多时钟域设计等。 最后,附录部分提供了一些额外的参考资料,包括快捷键列表、文件扩展名说明以及工具界面的说明等。 总之,Lattice Diamond说明手册提供了一个全面的指南,帮助用户了解和使用Lattice Diamond设计工具套件,使工程师能够更加高效地进行FPGA设计工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值