【2018年最新整理】FPGA培训.ppt
文本预览下载声明
FPGA培训 第一讲内容 ?? 可编程逻辑器件概述 ?? ispXP2芯片介绍 ?? FPGA与CPLD的比较 ?? Vrilog HDL编程语言 ?? 编程实例 ?? ispLEVER7.0开发环境 作业:数字时钟 可编程逻辑器件概述 PLD的分类 简单PLD器件被取代的原因 阵列规模小,资源不够用于设计数字系统 片内寄存器资源不足,难以构成丰富的时序电路 I/O不够灵活 编程不便,需专用的编程工具 FPGA/CPLD被广泛采用的原因 规模越来越大,单片逻辑门数已愈千万。 开发过程投资小。FPGA/CPLD芯片在出厂前都经过了严格的测试,而且设计灵活,发现错误可直接更改设计,减少了投片风险。 用FPGA/CPLD试制功能样机,能以最快速度占领市场。有些领域,标准协议发展太快,设计ASIC根不上技术更新速度,只能依靠FPGA/CPLD完成系统研制与开发。 FPGA/CPLD开发工具智能化,功能强大。 新型FPGA内嵌CPU或DSP内核,支持软硬件协同设计,可作为SOPC硬件平台。 XP2基本结构 FPGA/CPLD比较 功能模块: 结构模块: RTL综合: RTL综合: 典型综合流程: 典型仿真流程: 基本模块结构: PORTS声明: DATA类型声明: assign语句: assign语句: Always 语句: If there are more than one behavioral statement inside an always block, the statements can be grouped using the keywords begin and end. 此语句总是循环执行。 只有寄存器类型数据能够在这种语句中被赋值。所有的a l w a y s语句在0时刻并发执行。 阻塞性过程赋值: 赋值操作符是“=” 。阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行前该赋值语句完成执行。如下所示: a l w a y s@ (A o r B o r C i n) b e g i n T 1 = A B; T 2 = B C i n; T 3 = A C i n; C o u t = T 1 | T 2 | T 3; e n d T 1赋值首先发生,计算T 1;接着执行第二条语句,T 2被赋值;然后执行第三条语句,T 3被赋值;依此类推。 executed in the order they are specified in a sequential block 非阻塞性过程赋值: 非阻塞性过程赋值使用赋值符号“ =”。例如: b e g i n L o a d = 32; R e g A = L o a d; R e g B = S t o r e; e n d allow scheduling of assignments without blocking execution of the statements that follow in a sequential block . – Recommended: Use Nonblocking assignments for clocked processes when writing synthesizable code. Always 语句: Always 语句: If-Else Statements Case Statement Clocked Process Function Function- Multiplier ispLEVER设计流程图 System Stimulation 实例: Design Block Stimulus Block 数字时钟 自制版上按钮按下、蜂鸣器鸣叫。 四个数码管初始数值显示“0、0、0、0”。 设定自制版从左至右,数码管名称4、3、2、1。 数码管1、2显示分钟,数值显示“0”~“60”; 数码管3、4显示小时,数值显示“0”~“24”; 数码管3上的点表示秒闪; 设定其中一个按钮为k1,按下分钟当前显示值加一。 设定另外一个按钮为k2,按下小时当前显示值加一。 Top图: 参考资料目录: 参考资料目录: 时钟程序部分参考.doc LatticeXP2 Family Handbook.pdf XP2-5 - 144-TQFP.pdf Nonblocking assignments (=) are used for clocked processes module counter( clk,clr,f,d,q ); input clk; input clr; input [1:0]f; input [7:0]d; output [7:0]
显示全部