01
Verilog入门
数字电路设计概述 · Verilog历史与特点 · Lattice半导体公司简介 · 开发环境Diamond安装与验证
基础环境
02
模块与端口
module/endmodule结构 · 输入输出端口定义 · 端口类型(wire/reg)· 模块实例化基础
结构实例化
03
数据类型与运算符
wire与reg详解 · 常量定义(parameter/localparam)· 位宽概念 · 算术/逻辑/移位运算符
数据类型运算符
04
结构化建模
门级原语(and/or/not等)· 模块实例化 · 层次化设计思想 · Lattice器件结构简介
门级层次化
05
组合逻辑设计
assign语句 · 连续赋值 · 条件运算符 · always@(*)用法 · 多路选择器/加法器实例
组合逻辑assign
06
时序逻辑基础
always@(posedge clk)用法 · 同步复位与异步复位 · D触发器建模 · 寄存器与锁存器区别
时序触发器
07
Lattice FPGA架构
Lattice ECP5/iCE40系列介绍 · 逻辑单元(PFU)· 布线资源 · PLL与时钟资源
架构Lattice
08
Diamond开发流程
新建工程 · 添加源文件 · 综合(Synplify Pro)· 引脚分配(Spreadsheet)· 下载配置
工具流程
09
仿真基础
Testbench结构 · initial/always块 · $display/$monitor系统任务 · 波形查看(ModelSim)
仿真Testbench
10
组合逻辑进阶
case/casez/casex语句 · 优先级编码器 · 三态缓冲器 · Lattice I/O单元配置
caseI/O
11
时序逻辑进阶
计数器设计 · 分频器(偶数/奇数分频)· 移位寄存器 · 线性反馈移位寄存器(LFSR)
计数器LFSR
12
状态机设计
Moore与Mealy状态机 · 三段式写法 · 状态编码(二进制/格雷/独热)· Lattice实现实例
FSM状态机
13
存储器设计
单口RAM · 双口RAM · ROM实现 · Lattice嵌入式存储器(EBR)配置 · IP核生成器
存储器EBR
14
时钟域处理
跨时钟域同步 · 双级触发器同步器 · 握手协议 · FIFO设计基础 · Lattice时钟资源
跨时钟域FIFO
15
时序约束入门
时钟约束(create_clock)· 输入/输出延迟约束 · Lattice Timing Analyzer使用
约束时序
16
Lattice IP核使用
PLL配置 · DSP块使用 · SerDes接口 · SPI/I2C控制器IP
IP核PLL
17
调试技巧
ChipScope替代方案(Reveal Analyzer)· 逻辑分析仪使用 · Signal Tap原理 · 在线调试
调试Reveal
18
设计优化
面积优化 · 速度优化 · 流水线设计 · 资源共享 · Lattice器件特性利用
优化流水线
19
接口设计基础
UART协议实现 · SPI主从设计 · I2C总线控制器 · Lattice硬核接口
UARTSPII2C
20
PWM与电机控制
PWM生成 · 死区时间控制 · H桥驱动逻辑 · Lattice电机控制方案
PWM电机
21
数字信号处理基础
流水线累加器 · MAC单元 · CORDIC算法简介 · Lattice DSP块应用
DSPCORDIC
22
视频接口基础
VGA时序生成 · HDMI简介 · LVDS接口 · Lattice视频桥接方案
视频VGA
23
低功耗设计
时钟门控 · 使能时钟 · 操作数隔离 · Lattice低功耗模式 · iCE40 Ultra特性
低功耗iCE40
24
安全与配置
比特流加密 · AES解密 · 多配置模式 · Lattice配置存储器
安全配置
25
高级综合技巧
Synplify综合选项 · 综合约束 · RTL视图分析 · Lattice综合优化指南
综合Synplify
26
时序收敛
建立时间/保持时间分析 · 关键路径优化 · 重定时(Retiming)· Lattice时序报告解读
时序收敛Retiming
27
可测试性设计
扫描链 · 边界扫描(JTAG)· BIST实现 · Lattice测试接口
DFTJTAG
28
Lattice Radiant工具
Rant软件介绍 · 与Diamond区别 · 新工程流程 · 高级特性
Radiant工具
29
项目实战1
LED点阵驱动设计 · 数码管动态扫描 · 按键消抖 · Lattice开发板验证
实战LED
30
项目实战2
简易逻辑分析仪设计 · 信号发生器 · 频率计 · 综合项目答辩要点
实战答辩