FPGA设计方法 刘志凯 2008年8月.

Slides:



Advertisements
Similar presentations
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
Advertisements

2017年3月5日 单片机原理与应用 背景知识调查.
第2章 SOPC硬件开发环境及流程.
实验四 利用中规模芯片设计时序电路(二).
第2章 FPGA/CPLD结构与应用.
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第10章 FPGA硬件设计 <EDA技术与应用> 课程讲义
第8章 Verilog有限状态机设计.
Greatest Common Divisor ---最大公约数
AKA Embedded 开放实验室系列普及讲座之一 FPGA/CPLD的应用和开发简介
水煮FPGA 传统FPGA设计流程简介.
Hadoop I/O By ShiChaojie.
监控器CAT705、 CAT706、 CAT813与 MAX705,、MAX706、 MAX813L管脚兼容 2008年1月
第1章 概 述.
智能电子钱包终端设计(一) ——CPU卡与COS文件结构
Verilog HDL 数字系统设计及实践 第5章 时序逻辑建模.
版权所有,禁止未经授权的商业使用行为 何宾 Tel: 北京中教仪装备技术有限公司.
时序逻辑电路 -分析.
Roy Wan PCI MS/s 14-bit 高速数字化仪 Roy Wan
可编程器件与电子设计自动化 上海交通大学电工及电子技术实验中心 一九九九年三月.
SOA – Experiment 3: Web Services Composition Challenge
FPGA设计.
 与非门参数测试与组合逻辑电路设计  集成触发器  计数、译码、显示电路
Programmable Logic Architecture Verilog HDL FPGA Design
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
课程设计.
DM8148与DM8127 ISS框架讲解 广州创龙电子科技有限公司
实验四 组合逻辑电路的设计与测试 一.实验目的 1.掌握组合逻辑电路的设计 方法 2.学会对组合逻辑电路的测 试方法.
S 数控机床故障诊断与维修.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
第二章 Java语言基础.
逆向工程-汇编语言
CPU结构和功能.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
14.2 时序逻辑电路的分析 概述 时序逻辑电路是由存储电路和组合逻辑电路共同组成的,它的输出状态不仅与输入有关,还与电路的过去状态有关,即具有存储功能。 输入信号 输出信号 输出方程 驱动方程 描述时序逻辑电路的三个方程 状态方程 存储电路的输入信号 时序逻辑电路构成框图 存储电路的输出信号.
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
C语言程序设计 主讲教师:陆幼利.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
数字电子技术 Digital Electronics Technology
时序逻辑电路 -分析.
(Random Access Memory)
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
第三章 MCS 51的硬件结构.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
组合逻辑电路 ——中规模组合逻辑集成电路.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
iSIGHT 基本培训 使用 Excel的栅栏问题
实验六 触发器逻辑功能测试 一、实验目的 二、实验仪器 1、熟悉并掌握RS、D、JK触发器的构成、工作原理和 功能测试方法。
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
《数字电子技术基础》(第五版)教学课件 清华大学 阎石 王红
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
集成与非门在脉冲电路中的应用 实验目的 1. 了解集成与非门在脉冲电路中 的某些应用及其原理。 2. 学习用示波器观测波形参数与
HSC高速输出例程 HORNER APG.
可编程逻辑器件器件的应用(讲座1) 兰州石化职业技术学院 电子技术教研室 贾 达.
第4章 触发器.
概述 一、基本要求 1. 有两个稳定的状态(0、1),以表示存储内容; 2. 能够接收、保存和输出信号。 二、现态和次态
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
FPGA有限状态机设计 王安然.
信号发生电路 -非正弦波发生电路.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
反应显微谱仪的飞行时间测量 暨数据获取系统的研究
第九章 存储器和可编程逻辑器件 本章主要内容 半导体存储器 只读存储器 随机存取存储器 存储器容量的扩展 可编程逻辑器件
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
FPGA系统设计与实践 本章小结(第5章).
DSP技术与应用 电子与信息技术系.
Presentation transcript:

FPGA设计方法 刘志凯 2008年8月

培训目标 了解FPGA的基本概念和特点 Cyclone器件的结构 了解FPGA的设计流程 理解FPGA的五大设计思想 了解如何设计最佳的状态机 了解FPGA设计的安全性

一、FPGA概念及特点 FPGA 是英文Field Programmable Gate Array的缩写,即现场可编程门阵列。 特点  特点 (1)无需投片生产,即可得到芯片 (2)可做ASIC的中试样片 (3)有丰富的触发器和I/O引脚 (4)设计周期最短、开发费用最低、风险最小 (5)采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容

二、Cyclone芯片结构 (1)可编程输入/输出单元 (2)逻辑阵列由LABs组成 ,10个LE组成一个LAB (3)锁相环PLL 全局时钟网络 (4)M4K RAM (5)其他硬件资源:如硬件乘法器、专用接口等 NEXT

(1)可编程输入/输出单元 1、适应不同的电气标准 2、可调整驱动电流大小 3、可以改变上、下拉电阻 4、在高速接口设计时的输入输出时序配置 BACK

(2)逻辑单元LE (1)四输入查找表 (2)触发器 BACK

(3)全局时钟网络 1、专用时钟管脚 驱动 2、给所有的内部组件提供时钟源 ,保证足够驱动能力和最小时钟偏移 BACK

(4)M4K RAM 支持以下特性: ■ 4,608 RAM bits ■ 250 MHz 执行频率 ■ 真双口存储器 ■ 普通双口存储器 ■ 单口存储器 ■ 字节使能 ■ 奇偶校验位 ■ 移位寄存器 ■ FIFO 缓冲 ■ ROM ■ 混合时钟模式 BACK

三、FPGA设计流程 NEXT (1)设计规范 输入工具:Block&Symbol Editor (2)设计输入 (3)功能仿真 (4)逻辑综合 (5)布局布线 (6)时序分析 (7)在系统测试 Technology Map Viewer 分析工具:Early Timing Estimate Timing Analyzer Tool 仿真工具:Waveform Editor Modelsim 输入工具:Block&Symbol Editor ,Text Editor(VHDL,Verilog) 辅助分析工具:RTL Viewer, State Machine 管脚约束:Pin planner, Assignment Editor 优化设计:Design Space Explorer Resource Optimization Adviser 手动工具:Chip Editor, Timimg Closure Floorplan 优化工具: Design Space Explorer Timing Optimization Adviser NEXT

(1)设计规范 系统中所处的位置及功能 内部功能框图 资源估计 时序估计 接口描述 A、硬件:连接关系,功耗,I/O引脚的描述(驱动能力、电平等) B、软件:操作方法,时序配合 测试项目 BACK

Block&Symbol Editor BACK

Text Editor(VHDL,Verilog) BACK

RTL Viewer BACK

State Machine BACK

(3)功能仿真 调用模块的 行为仿真模型 RTL代码 测试程序 (test bench) 测试数据 逻辑仿真器 BACK

(4)逻辑综合 BACK RTL代码 调用模块的 黑盒子接口 设置综合目标和约束条件 逻辑综合器 EDIF网表 (netlist) HDL网表 (netlist) BACK

Technology Map Viewer BACK

(5)布局布线 BACK 逻辑综合器 设置布局布线约束条件 EDIF网表 (netlist) 调用模块的 综合模型 FPGA厂家工具 HDL网表 (netlist) SDF文件 (标准延时格式) 下载/编程文件 BACK

Assignment Editor BACK

Design Space Explorer BACK

Chip Editor BACK

Timimg Closure Floorplan BACK

(6)时序分析 BACK 测试数据 FPGA厂家工具 HDL网表 (netlist) SDF文件 (标准延时格式) FPGA基本单元仿真模型 测试程序 (test bench) 逻辑仿真器 BACK

Timing Analyzer Tool BACK

Waveform Editor&Modelsim BACK

四、五大设计思想 (1)Top-down结构化 (2)乒乓操作 (3)串并转换 (4)流水线操作 (5)数据接口同步化 NEXT

(1)Top-down结构化 BACK design src (源代码) core (功能核) sim (仿真) doc (过程文档) dev (器件文件) lib (原始库) funcsim (功能仿真) parsim BACK

(2)乒乓操作 BACK

(3)串并转换 通过 DPRAM 实现数据流的串并转换,而且由于使用了 DPRAM ,数据的缓冲区可以开得很大,对于数量比较小的设计可以采用寄存器完成串并转换。是面积与速度互换原则的体现! BACK

(4)流水线操作 BACK

(5)数据接口同步化 1.同步电路比较容易使用寄存器的异步复位/置位端,以使整个电路有一个确定的初始状态; 2.在可编程逻辑器件中,使用同步电路可以避免器件受温度,电压,工艺的影响,易于消除电路的毛刺,使设计更可靠,单板更稳定; 3.同步电路可以很容易地组织流水线,提高芯片的运行速度,设计容易实现;

不同步的风险

双触发器同步器

快时钟域信号到慢时钟域信号传输失败

快时钟域信号到慢时钟域信号同步 上图 下图

多控制信号下数据交换失败

多控制信号同步方法

多数据交换方法 (1)握手机制 (2)FIFO方式 速度匹配或数据宽度匹配。 BACK

五、状态机 (1)设计状态机步骤 (2)采用状态转移图或ASM设计 (3)状态编码 (4)状态机的类型 (5)状态机的风格 (6)其他注意事项 NEXT

(1)设计状态机步骤 1、深入的理解问题(Understand the problem)。 2、获得一个对状态机的理论性的描述(Obtain an abstract representation of the FSM)。如状态转移图或时序图。    3、对状态机进行优化(Perform state minimization. )。 4、进行状态编码的赋值(Perform state assignment)。编码方式好坏决定了执行的速度。 5、选择何种类型来实现状态机(Choose fit types for implementing the FSM)。 6、实现有限状态机(Implement the finite state machine)。 BACK

(2)采用状态转移图或ASM设计 4位二进制同步计数器 BACK 状态转移图 ASM图

(3)状态机编码 1.顺序编码。 2.格雷码编码。 3.独热编码(one-hot)。 4.其他(江逊计数器等)。 在小设计中可以考虑使用Gray码或one-hot。大设计中,由于现在技术进步几乎不用考虑逻辑资源不够的问题,可以考虑使用one-hot编码以提高速度。至于顺序二进制编码,一般不予考虑。 BACK

(4)状态机类型 1、moore状态机 (与当前输入有关) Current State Input 组合逻辑 状态 组合逻辑 外部输入 输出 Output CLK Next State

2、mealy状态机 (与当前输入无关) 组合逻辑 外部输入 Input Output 状态 组合逻辑 外部输出 Next State Current State CLK BACK

(5)状态机风格 一段式 一个always模块完成输出及状态转移; 必须要综合考虑现态在何种状态转移条件下会进入哪些次态,然后在每个现态的case 分支下分别描述每个次态的输出。 两段式 一个always 模块采用同步时序描述状态转移;另一个模块采用组合逻辑判断状态转移条件。 三段式 在两段式基础上使用同步时序逻辑寄存FSM 的输出 ; 使FSM 做到了同步寄存器输出,消除了组合逻辑输出的不稳定与毛刺的隐患,而且更利于时序路径分组 。 BACK

(6)其他注意事项 case与default,if与else 对于所有的输出信号在每一个时钟周期的取值,都必须作出非常明确的定义 代码优化为4输入组合逻辑 BACK

FPGA设计的安全性 辐射效应主要有 : (1)总剂量效应 (2)单粒子翻转 (3)单离子闩锁 (4)单-粒子功能中断 (5)单粒子烧毁 (6)单粒子瞬态脉冲 (7)位移损伤

可靠性设计 整体屏蔽减少辐射 冗余设计

可靠性设计 防止关键电路引起的抖动 A、内部复位电路尽可能使用同步复位; B、控制线尽可能配合使能信号线使用; C、组合逻辑数据在锁存时尽可能配合使能信号 逻辑和算术运算的设计 Berber预测法、余数判断法检测法、奇偶校验等 自检模块 系统监控与重配置

总结 FPGA是一种可编程硬件,深入理解器件的结构有助于设计 严格遵守设计流程,充分利用工具 在整个设计中贯穿五大设计思想 状态机的编码、类型、风格和设计思路决定了能否设计出高效的状态机 FPGA在设计中需要考虑安全性

通讯表决电路设计 刘志凯 2008年8月

一、实现的功能 1、基本功能: 对 CPU1、CPU2向 BTM的通讯路径进行表决,CPU1和CPU2通过并行总线将需要表决的数据写入VOTER1,VOTER1在内部表决通过后以串行总线方式发送给BTM; 对 CPU1、CPU2向 DMI的通讯路径进行表决,CPU1和CPU2通过并行总线将需要表决的数据写入VOTER1,VOTER1在内部表决通过后以串行总线方式发送给DMI; 生成同步脉冲信号和转速脉冲计数更新信号,在初始时刻延迟10s,随后每隔10ms向两CPU同时发送0.01ms的低电平同步脉冲; 将ETHERNET和UART的中断信号IRQ及应答信号IACK通过数据线上报给CPU。 2、安全功能: 表决电路监测两个CPU 向BTM发送数据内容的一致性,当接收的数据内容不一致时,表决电路就发送给CPU故障诊断信息; 表决电路监视两个CPU写入数据的时间差是否超时,当在一个周期内,表决电路在10ms之内没有接收到来自两个CPU传来的完整数据包时会报超时故障; 为了检查数据的故障,内部具有CRC32校验器(BTM表决),CRC-CCITT校验器(DMI表决); 内部数据比较表决电路带有故障自诊断功能,在每次进行比较表决之前,先检查该电路是否存在故障(通过一组不同数据检测是否表决出不一致),当出现故障,故障诊断信息输出给CPU; 监视通信是否超时,若在400ms内没有下发数据时,即在四个周期内上述故障连续发生时,将判断通信超时错误,切断通讯。

二、系统框图

三、内部模块框图 (1)同步脉冲产生模块Sync module; (2)译码模块DECODER module; (3)时钟模块CLOCK module; (4)BTM表决电路模块BTM voter module; (5)DMI表决电路模块DMI voter module; (6)UART控制模块UART control module。 BTM voter module DMI voter Sync CLOCK DECODER UART control

同步脉冲产生模块Sync module BACK

译码模块DECODER module BACK

时钟模块CLOCK module BACK

UART控制模块UART control module BACK

BTM表决电路模块BTM voter module _ dmi _ clock btm _ comtimer CPU 1 CPU 2 btm _ fault btm _ dmi _ ctr btm _ dmi _ ctr rst _ n rst _ n btm __ timer 控制总线 控制总线 CPU 1 btm _ cpuinterface btm _ cpuinterface CPU 2 地址总线 地址总线 btm _ crc btm _ crc 数据总线 数据总线 btm _ compare btm _ communication dout

CPU接口模块btm_cpuinterface BACK

10ms定时监视模块btm_timer BACK

CRC校验模块btm_crc BACK

比较模块btm_compare BACK

串行通讯模块btm_communication BACK

通讯超时监视模块btm_comtimer BACK

故障报告模块btm_fault BACK