Lattice Diamond与MachXO2分线板教程(含Verilog)

逻辑主页

产品供应情况

MachXO2分线板最初版本搭载的是LCMXO2-1200ZE-1TG144C CPLD芯片,新版现已替换为LCMXO2-7000HE-4TG144C。

新版MachXO2分线板(LCMXO2-7000HE-B-EVN)可通过DigiKey此链接购买。

旧版MachXO2分线板(LCMXO2-1200ZE-B-EVN)库存有限,可通过DigiKey此链接购买。

教程配套 Verilog 代码

blinking_led.v (3.7 KB)

简介

注:本页信息主要摘录自eeWiki"LOGIC"板块下的《Lattice Diamond与MachXO2分线板教程》,设计理念同时适用于Verilog和VHDL实现方案。

本教程将引导您使用Lattice Diamond软件(2.0.1版)为MachXO2分线板评估套件创建简单项目。该项目通过4-8位数据编码器控制LED阵列的闪烁模式。振荡器设置为133MHz;可通过修改"N"参数或振荡器频率调节闪烁频率。默认计数器设置为28位。适用于两个版本的评估套件。教程涵盖新建项目、代码录入、内部振荡器使用、编译、引脚分配及板卡编程等内容。另有独立教程讲解仿真部分。本教程使用的开发板为MachXO2分线板(LCMXO2-7000HE,DigiKey料号220-2625-ND,近期已取代LCMXO2-1200ZE-B-EVN,DigiKey料号220-1298-ND)。这两款均为低成本可编程逻辑器件(PLD)开发板。MachXO2是搭载硬化ASIC门电路嵌入式功能块(EFB)的低功耗FPGA。

应用场景

创建新项目

选择"文件(File)→新建(New)→项目(Project)…“启动新建项目向导(New Project Wizard launche)。点击"下一步”(Next)。如图1所示输入项目名称及存储路径,点击"下一步"(Next)。

1. 新建项目名称与位置

本项目不使用现有源文件。点击"下一步"(Next)。

将器件系列指定为MachXO2,器件选择LCMXO2-7000HE或LCMXO2-1200ZE(根据您拥有的开发板版本),封装类型选择TQFP144,性能等级选择4(若使用7000HE)或1(若使用1200ZE),工作条件选择商用级。部分选项需优先选定,才能在下拉列表中显示正确的后续选项。完整器件型号LCMXO2-7000HE-4TG144C或LCMXO2-1200ZE-1TG144C将显示在部件名称文本框内,如图2所示。点击"下一步"(Next)。点击完成。

2. 器件选择

实例化片内振荡器与 Verilog 代码输入

创建新源文件需选择:文件(File)→新建(New)→文件…(File…)如图3所示,选择源文件类别及Verilog文件类型。命名新文件并点击新建(New)。

3. 创建一个Verilog源文件(New Verilog Source File)

振荡器模块必须在顶层架构中实例化,如随附的blinking_led.v文件所示。标称频率可通过模块"defparam"实例化定义,如图4所示。本设计运行频率为133MHz。

4. Verilog振荡器实例化代码片段

顶层Verilog封装模块名为"blinking_led"。其代码片段如图5所示。

5. 顶层模块

用于LED定时的计数器可在图6的“always”块中看到。

6. 计数器的“Always”块

该模块的最后一部分是“always”块,用于将计数器最高有效半字节编码为8位LED阵列上显示的1字节模式。这在下图7的代码片段中可见。

7. 四至八位数据编码器推断为ROM

引脚分配与编译

在Process窗格(Process Pane)中选择并双击“Translate Design”以执行综合与转换。如图8所示。

8. 引脚分配前的设计转换

接着选择Tools → Spreadsheet View。点击Spreadsheet View底部的Pin Assignments标签。向下滚动直至出现引脚107。双击引脚107的Signal Name列。Assign Signals对话框将如图9所示弹出。

9. 使用Spreadsheet View进行引脚分配

选择led0信号并点击Assign Signals,将其分配给引脚107、106、105、104、100、99、98和97。引脚107连接至MachXO2扩展板的LED D8,其余引脚分别连接至板上的D1。

返回Process窗格,勾选Export Files下的JEDEC File。双击Export Files执行映射(Map)、布局布线(Place & Route),并生成JEDEC编程文件。若提示保存修改文件,请确认。图10展示了成功完成的结果。

10. 成功完成综合、映射、布局布线与JEDEC文件生成

CPLD 编程

通过USB线将MachXO2开发板连接至电脑。
选择Tools → Programmer。如图11所示,"编程器:入门"对话框将打开。点击OK。

11. 打开入门对话框设置编程器

点击Program图标。设备将开始编程。完成后,状态指示变为绿色如图12所示。8个LED将以对称模式闪烁,每个LED点亮持续时间约250毫秒。

12. PLD编程与成功完成

功能、限制与修改

本教程使用Lattice Diamond 2.0.1版本开发,并得到Synopsys(Synplify Pro)软件支持。Lattice Diamond可作为独立开发环境,配合第三方综合与仿真软件使用。

结论

本教程通过Lattice Diamond软件和MachXO2开发板,演示了使用Verilog硬件描述语言创建简单项目的基本步骤。

附加信息

更多设计支持、产品教程、应用笔记、用户指南及其他文档可在Lattice官网查阅:https://www.latticesemi.com/zh-CN

附录

完整的MachXO2开发板HDL教程可在此处下载。

默认频率为2.08MHz。支持的频率(单位MHz,详见"blinking_led"模块注释)包括图13所列数值。

13. 内部振荡器支持频率