第25卷第4期苏 州 大 学 学 报(工 科 版)Vol.25No.4 2005年8月JOURNA L OF SOOCH OW UNIVERSIT Y(ENGINEERING SCIENCE E DITION)Aug.2005文章编号:1673-047X(2005)04-0031-02

用VHDL语言对FPGA和CPLD器件进行开发时应注意的事项Ξ

刘文杰

(苏州大学机电工程学院,江苏苏州215021)

摘 要:根据FP G A和CPLD器件的结构特点,提出了利用V HDL硬件描述语言对FP G A和CPLD器件进行开发时应注意的事项和一些经验技巧,供广大电子设计师参考。

关键词:FP G A;CPLD;V HDL;电子设计

中图分类号:TN492 文献标识码:A

用V HDL语言设计电路是利用硬件描述的方法,将系统功能通过目标器件表现出来,而目标器件的资源占用率是设计成功与否的关键。虽然HDL设计语言与设计平台与具体硬件无关,设计者能最大程度地将自己的才智和创造力集中在系统性能提高和成本降低上,但描述方法、设计规则和逻辑设计等均对电路的结构有一定的影响。不合理的V HDL设计往往占用过多的系统资源,有些甚至不能在目标器件中适配,因此,应该在设计时对有些事项加以注意。

1 毛刺问题的处理

在EDA环境中,毛刺是系统设计是否成功的关键。毛刺(竞争-冒险)现象是长期困绕电子工程师的问题之一。由于毛刺的存在,使得系统存在许多不稳定因素,经常会造成对脉冲上下沿敏感的电路产生误动作。毛刺主要是由门电路延时及路径延时造成的,采用传统设计方法时,毛刺必须在硬件测试时才有机会发现。但在现代数字系统设计时,通过EDA软件,完全可以找出毛刺产生的原因及产生的位置,并且非常精确和接近实际情况。

目前常使用三种方法来消除毛刺[1],它们分别为延时法、选通法和修改逻辑设计法。其中,修改逻辑设计能从根本上消除毛刺,但该方法要求使用者掌握电路的工作状态及其转换,有时需要多路输出,使用起来有一定的复杂性。

2 FP GA及CPLD器件的选择

现场可编程门阵列FP G A(Field Programmable G ate Array)和复杂可编程逻辑器件CPLD(Complex Pro2 grammable Logic Device)均是目前大量使用的可编程大规模集成电路。可编程器件的使用,大大缩短了电子产品的设计周期,减少了设计费用及风险,是电子产品领域的一场革命。

FP G A器件将逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块来实现相应的逻辑功能。FP G A器件的内部可以分成三个组成部分,分别是可构造的输入/输出模块IOB(Input/Output Block)、可构造逻辑块CLB(Configurable Logic Blocks)和可编程内部连线资源PIA(Programmable Interconnect Array)。

CPLD器件将多个可编程阵列器件(PAL)集成到一个芯片内,一般包含三个部分,分别为可编程逻辑功能块(FB)、可编程I/O单元以及可编程内部连线,有些CPLD器件还集成RAM、双口RAM和FIFO等。尽管FP G A和CPLD均为可编程器件,有很多共同的特点,但由于结构上的差异,在使用时,必须注意以下几点:

(1)CPLD器件编程时采用E2PROM或FAST FLASH技术,使用时无需外部存储芯片,系统断电时,编程信息不丢失;而FP G A器件必须使用外部存储器存储编程的信息。由于采用SRAM存储技术,FP G A编程信息在系统断电时丢失,每次上电时,必须将编程信息重新写入SRAM中,但其编程次数没有限制,可以

Ξ收稿日期:2005-03-04

作者简介:刘文杰(1966-),男,副教授,主要研究方向为机电一体化技术。

chipsel语言_用VHDL语言对FPGA和CPLD器件进行开发时应注意的事项相关推荐

  1. java的副语言_英语副语言的交际功能及特征

    本文引用<科技资讯> 摘要:副语言是人们说话时伴随语言而产生但又不属于语言现象的某些发音特征,副语言行为贯穿于言语交际的始终并具有特殊的交际功能.了解英语副语言的交际功能与特征,有助于我们 ...

  2. c语言和python语言分别是一种什么语言_作为入门语言,C语言和Python哪一种更值得选择?...

    初学编程,应该学习哪一门编程语言,有不少人感到困惑,那么我们到底该如何选择呢? C语言和Python作为多种语言中两种语言,只是语法不同而已.以其作为入门语言的话,那还是各有千秋,各有各的好处的. 有 ...

  3. 开源3d模型格式转换_将您的开源业务转换为基于收入的模型时应考虑的因素

    开源3d模型格式转换 是否可以通过一组简单的正式语言转换规则将SQL作为一种语言集成并标准化到Java中? 是的,它可以. 当总部位于瑞士苏黎世的开源公司启动名为jOOQ的新数据库抽象软件项目时, D ...

  4. perm函数c语言_理解C语言(三) 字符串处理函数

    1 字符串基础 字符串是一种重要的数据类型,有零个或多个字符组成的有限串行. 定义子串: 串中任意个连续的字符组成的子序列,并规定空串是任意串的子串,任意串也是其自身的子串,如字符串"ade ...

  5. 界面设计语言_使用任何语言设计界面的提示

    界面设计语言 Designing for international audiences is challenging. I spent most of my career in Australia ...

  6. golang go语言_在Go语言中无需反思即可使用Lodash的好处

    golang go语言 by Tal Kol 通过塔尔科尔 在Go语言中无需反思即可使用Lodash的好处 (The benefits of using Lodash in the Go langua ...

  7. 前端要不要学习一门后端语言_这是一门免费课程,可帮助前端开发人员学习数学

    前端要不要学习一门后端语言 Are you looking to become a more effective developer by improving your fundamental mat ...

  8. c++ memset 语言_自学C语言不知道从哪儿下手?学习框架都帮你列好了!

    首先up主发现头条上居然没有技术板块,不知道是不是我没看见,那么我就做头条技术萌新大佬哈哈哈哈,想想都刺激, 普通人学习c语言大概需要3个月时间,每天码代码,学好了c,你会发现c++基本只需要1个月不 ...

  9. 更新r语言_【R语言学习最佳资料之一】R小抄速查表精简更新版

    下午午睡起来,右边后脑勺痛,没有办法集中精神去思考问题,干脆就把五月份整理的R语言小抄整理了一遍,分享给大家. 我选择了我认为比较重内容进行整理,并且重新整理目录,方便大家查阅学习.小伙伴们可以自己下 ...

最新文章

  1. php的运算符实践输入年份,[php第四课]运算符
  2. python零碎知识(5):有关正则表达式
  3. resize 按钮不会被伪元素遮盖
  4. Zabbix agent批量自动部署
  5. opencv 图像平移、缩放、旋转、翻转 图像仿射变换
  6. Python的Web Services客户端
  7. 108次练习之模拟实现STL中的Vector(一)
  8. MySQL 为表创建、添加、删除以及查看索引的语法
  9. 全国银行SWIFT代码查询
  10. 免费且好用的GIF录制软件LICEcap
  11. goole搜索技巧(摘要)
  12. 5个免费设计素材网站,设计师必备
  13. VJ 1385 盗窃-月之眼
  14. 腾讯地图 周边 poi 搜索及参数配置
  15. 绿色软件的“绿化”方法
  16. RUOYI 框架教程 1 |小白都能学会的 3 分钟搭建框架教程
  17. SQL Server学习笔记6——LTRIM()函数(去掉空格)
  18. mysql循环方法总结
  19. netcat基本使用方法总结
  20. 不同浏览器的userAgent

热门文章

  1. 计算机数日期,计算机如何计算两个日期之间的天数
  2. IOS UITouch 触摸事件,UIResponder 的作用
  3. 无锡c语言编程培训学校,无锡c语言培训班——C语言基础知识
  4. linux cat cd,linux 文件系统命令 cat cd chmod
  5. C++ 一个字符串只包含K和D。K表示杀人,D表示死亡。计算连续杀敌次数,阵亡则归零。
  6. 2016年下半年《软件评测师》下午试卷及答案
  7. Git 下载、安装与SSH配置
  8. oracle 11g jdbc jar包在哪个文件目录
  9. 对Linux命令od -tc -tx1的C语言程序实现myod-优化版
  10. R学习-- 数组和矩阵