随着HDL Hardware Description Language 硬件描述语言语言综合工具及其它相关工具的推广使广大设计工程师从以往烦琐的画原理图连线等工作解脱开来能够将工作重心转移到功能实现上极大地提高了工作效率任何事务都是一分为二的有利就有弊我们发现现在越来越多的工程师不关心自己的电路实现形式以为我只要将功能描述正确其它事情交给工具就行了在这种思想影响下工程师在用HDL语言描述电路时脑袋里没有任何电路概念或者非常模糊也不清楚自己写的代码综合出来之后是什么样子映射到芯片中又会是什么样子有没有充分利用到FPGA的一些特殊资源遇到问题立刻想到的是换速度更快容量更大的FPGA器件导致物料成本上升更为要命的是由于不了解器件结构更不了解与器件结构紧密相关的设计技巧过分依赖综合等工具工具不行自己也就束手无策导致问题迟迟不能解决从而严重影响开发周期导致开发成本急剧上升 目前我们的设计规模越来越庞大动辄上百万门几百万门的电路屡见不鲜同时我们所采用的器件工艺越来越先进已经步入深亚微米时代而在对待深亚微米的器件上我们的设计方法将不可避免地发生变化要更多地关注以前很少关注的线延时我相信ASIC设计以后也会如此此时如果我们不在设计方法设计技巧上有所提高是无法面对这些庞大的基于深亚微米技术的电路设计而且现在的竞争越来越激励从节约公司成本角度出 也要求我们尽可能在比较小的器件里完成比较多的功能 本文从澄清一些错误认识开始从FPGA器件结构出发以速度路径延时大小和面积资源占用率为主题描述在FPGA设计过程中应当注意的问题和可以采用的设计技巧本文对读者的技能基本要求是熟悉数字电路基本知识如加法器计数器RAM等熟悉基本的同步电路设计方法熟悉HDL语言对FPGA的结构有所了解对FPGA设计流程比较了解
上传时间: 2015-01-02
上传用户:refent
数字与模拟电路设计技巧IC与LSI的功能大幅提升使得高压电路与电力电路除外,几乎所有的电路都是由半导体组件所构成,虽然半导体组件高速、高频化时会有EMI的困扰,不过为了充分发挥半导体组件应有的性能,电路板设计与封装技术仍具有决定性的影响。 模拟与数字技术的融合由于IC与LSI半导体本身的高速化,同时为了使机器达到正常动作的目的,因此技术上的跨越竞争越来越激烈。虽然构成系统的电路未必有clock设计,但是毫无疑问的是系统的可靠度是建立在电子组件的选用、封装技术、电路设计与成本,以及如何防止噪讯的产生与噪讯外漏等综合考虑。机器小型化、高速化、多功能化使得低频/高频、大功率信号/小功率信号、高输出阻抗/低输出阻抗、大电流/小电流、模拟/数字电路,经常出现在同一个高封装密度电路板,设计者身处如此的环境必需面对前所未有的设计思维挑战,例如高稳定性电路与吵杂(noisy)性电路为邻时,如果未将噪讯入侵高稳定性电路的对策视为设计重点,事后反复的设计变更往往成为无解的梦魇。模拟电路与高速数字电路混合设计也是如此,假设微小模拟信号增幅后再将full scale 5V的模拟信号,利用10bit A/D转换器转换成数字信号,由于分割幅宽祇有4.9mV,因此要正确读取该电压level并非易事,结果造成10bit以上的A/D转换器面临无法顺利运作的窘境。另一典型实例是使用示波器量测某数字电路基板两点相隔10cm的ground电位,理论上ground电位应该是零,然而实际上却可观测到4.9mV数倍甚至数十倍的脉冲噪讯(pulse noise),如果该电位差是由模拟与数字混合电路的grand所造成的话,要测得4.9 mV的信号根本是不可能的事情,也就是说为了使模拟与数字混合电路顺利动作,必需在封装与电路设计有相对的对策,尤其是数字电路switching时,ground vance noise不会入侵analogue ground的防护对策,同时还需充分检讨各电路产生的电流回路(route)与电流大小,依此结果排除各种可能的干扰因素。以上介绍的实例都是设计模拟与数字混合电路时经常遇到的瓶颈,如果是设计12bit以上A/D转换器时,它的困难度会更加复杂。
上传时间: 2014-02-12
上传用户:wenyuoo
各种plc电缆,PLC编程电缆制作 大全。
上传时间: 2013-11-08
上传用户:shaojie2080
教你如何制作小型涡轮喷气发动机
上传时间: 2013-10-21
上传用户:fqscfqj
PLC编程理论算法及技巧
上传时间: 2013-10-12
上传用户:s蓝莓汁
三菱系列PLC人机连接线制作图纸
上传时间: 2013-11-04
上传用户:chendawei
遥控航空模型制作详细图文解是通过51控制航模的舵机。从而自制航模。
上传时间: 2013-10-24
上传用户:潇湘书客
工程资源管理器 如何创建和使用 LabVIEW 中的 LLB 文件 如何使用 VI 的重入属性(Reentrant) 用户自定义控件中 Control, Type Def. 和 Strict Type Def. 的区别 调整控件和函数面板的首选项 在文件夹下直接创建新的 VI 图标编辑器上的鼠标双击技巧 第二章:简单程序结构 顺序结构 选择结构 事件结构 循环结构 定时结构 缓存重用结构 LabVIEW 中的泛型容器 第三章:控件、常量和运算 LabVIEW 中的数字型数据 1 - 控件和常量 LabVIEW 中的数字型数据 2 - 运算 LabVIEW 中的数字型数据 3 - 数值的单位 第四章:常用的程序结构 几种简单的测试程序流程模型 用 LabVIEW 编写 Wizard 类型的应用程序 1 (LabVIEW 6.1 之前) 用 LabVIEW 编写 Wizard 类型的应用程序 2 (LabVIEW 6.1 ~ 7.1) 用 LabVIEW 编写 Wizard 类型的应用程序 3 (LabVIEW 8.0) 用 LabVIEW 编写 Wizard 类型的应用程序 4 (LabVIEW 8.2 之后) 在 LabVIEW 中使用常量定义 多态 VI 全局变量 传引用 第五章:调试 LabVIEW 的调试环境 断点和探针 其它常用调试工具和方法 LabVIEW 代码中常见的错误 查看一段代码的运行时间 如何调试 LabVIEW 调用的 DLL 第六章:深入理解 LabVIEW G 语言 LabVIEW 是编译型语言还是解释型语言 数据流驱动的编程语言 传值和传引用 VI 中的数据空间 第七章:编写优美的代码 用户界面设计 1 用户界面设计 2 - 界面的一致性 用户界面设计 3 - 界面元素的关联 用户界面设计 4 - 帮助和反馈信息 Caption 和 Label 的书写规范 隐藏程序框图上的大个 Cluster 制作不规则图形的子VI图标 第八章:编写高效率的代码 LabVIEW 程序的内存优化 1 LabVIEW 程序的内存优化 2 - 子 VI 的优化 LabVIEW 程序中的线程 1 - LabVIEW 是自动多线程语言 LabVIEW 程序中的线程 2 - LabVIEW 的执行系统 LabVIEW 程序中的线程 3 - 线程的优先级 LabVIEW 程序中的线程 4 - 动态连接库函数的线程 LabVIEW 的运行效率 1 - 找到程序运行速度的瓶颈 LabVIEW 的运行效率 2 - 程序慢在哪里 LabVIEW 对多核 CPU 的支持 第九章:VI 服务 VI Server (VI 服务) 后台任务 在 LabVIEW 中实现 VI 的递归调用 VB script 打开一个VI 第十章:调用动态链接库 动态链接库导入工具 CLN 的配置选项 简单数据类型参数的设置 结构型参数的设置 作为函数返回值的字符串为什么不用在 VI 中先分配内存 LabVIEW 中对 C 语言指针的处理 调试 LabVIEW 调用的 DLL 第十一章:面向对象编程(LVOOP) 利用 LabVIEW 工程库实现面向对象编程 模块接口 API 的两种设计方案 LabVIEW 对面向对象的支持 面向对象与数据流驱动的结合 LabVIEW 中的类 第十二章:XControl 一个 XControl 的实例 用 XControl 实现面向组件的编程 第十三章:项目管理
标签: LabVIEW
上传时间: 2013-11-01
上传用户:ruixue198909
万用电表使用技巧与实例
标签: 万用电表
上传时间: 2014-04-30
上传用户:huaidan
特权制作的USB-Blaster全部相关资料 详细资料
标签: USB-Blaster
上传时间: 2013-10-18
上传用户:wangyi39