点评VHDL语言
(1)VHDL的描述风格及语法十分类似于一般的计算机高级语言,但是它是一种硬件描述语言。学好VHDL的关键是充分理解VHDL语句和硬件电路的关系。编写VHDL,就是在描述一个电路,我们写完一段程序后,应当对生成的电路做到心中有数,而不能用纯软件的思路来编写VHDL程序(硬件描述语言和单片机程序是有区别的)。
(2)语法掌握贵在精不在多。30%的基本VHDL语句就可以完成95%的电路设计,很多生僻的语句并不能被所有的综合工具所支持,在程序移植或被更换软件平台时容易产生兼容性问题,也不利于其他人阅读和修改。建议多用心钻研常用语句,理解这些语句的硬件含义,这比多掌握几个新语法要有用的多。
(3)VHDL描述和传统原理图的关系就好比是高级语言和汇编语言的关系。VHDL可移植性好,使用方便,但效率不如原理图;原理图输入的可控性好,效率高,比较直观,但设计大规模CPLD/FPGA时显得很繁琐,移植性差。在真正的设计中,通常建议采用原理图和VHDL结合的方法设计,适合原理图的地方就用原理图,适合用VHDL的地方就用VHDL,灵活使用,以实现高效、稳定、符合设计要求的电路为最终目的。
(4)VHDL的可综合性问题。如果VHDL程序只用于仿真,那么几乎所有的语法和编程方法都可以使用。但如果程序是用硬件实现,那么就必须保证VHDL程序“可综合”。不可综合的VHDL语句在软件综合时被忽略或者报错。应当牢记一点:“所有的VHDL描述都可以用来仿真,但是不是所有的VHDL描述都能用硬件实现。”另外,综合是一项十分复杂的工作,不同的VHDL综合工具,其综合和优化效率是不一样的。就像C语言的编译器能产生最优化的机器码,也能产生非优化的机器码。这是由于这些综合工具所采用的转换算法和优化技术不同所导致的。
点评VHDL语言的更多相关文章
- 循环灯控制器,该控制器控制红、绿、黄三个发光管循环发亮(VHDL语言)
设计一个循环灯控制器,该控制器控制红.绿.黄三个发光管循环发亮.要求红发光管亮2秒,绿发光管亮3秒,黄发光管亮1秒.(假设外部提供频率为1MHz的方波信号) library ieee; use iee ...
- VHDL语言实现的任意整数分频器
fpga中,一般外接的晶振是50Mhz,如果电路中一个模块需要25mhz时钟,那么进行一个2分频,这个是相当容易的,下面是一种方法,还有可以用一个二进制计数器实现.这里就不写代码了.easy.同样的原 ...
- DES加密:8051实现(C语言) & FPGA实现(VHDL+NIOS II)
本文将利用C语言和VHDL语言分别实现DES加密,并在8051和FPGA上测试. 终于有机会阅读<深入浅出密码学一书>,趁此机会深入研究了DES加密的思想与实现.本文将分为两部分,第一部分 ...
- kururu的VHDL学习笔记
最近开始做课程设计,VHDL设计一个中央空调的控制程序.所以开始学习VHDL,在这篇文章里面记录一些自己的笔记,期望对于同样的初学者有些借鉴意义~ 编写VHDL所需的工具: 那自然很是quartus啦 ...
- VHDL学习记录
VHDL全名Very-High-Speed Integrated Circuit Hardware Description Language ,是一种标准硬件描述语言.下面通过60进制计数器来分析VH ...
- 基于VHDL利用PS2键盘控制的电子密码锁设计
基于VHDL利用PS2键盘控制的密码锁设计 附件:下载地址 中文摘要 摘 要:现代社会,人们的安全意识正在不断提升.按键密码锁由于其具有方便性.低成本等特征,还是大有用武之地的.但是通常的按键密码锁开 ...
- vivado自定IP例化的问题,怎么生成VHDL的例化
在tools 下面选中project settings.然后选targat language为VHDL .这样就会生成一个以VHDL语言为模板的ip. 转载:https://zhidao.baidu. ...
- 基于VHDL的8255可编程并行接口电路设计
一.实验题目名称: 8255可编程并行接口电路设计 二.实验目的.任务和要求: 实验目的:学习掌握基本的数字系统设计方法,建立自顶向下的设计思维,能够使用VHDL语言编写简单的应用IP核,掌握基本的F ...
- 在verilog中调用VHDL模块
习惯了自己发现一些小问题,既然发现了,就记下来吧,不然又要忘了,这是多么悲痛的领悟. 今天在用vivado进行块设计时所生成的顶层模块居然是用VHDL语言描述的,这时郁闷了,表示只看过VHDL语法但没 ...
随机推荐
- [Javascript] Chaining the Array map and filter methods
Both map and filter do not modify the array. Instead they return a new array of the results. Because ...
- _blank开新窗体不符合标准?
我们要在新窗体中打开链接通常的做法是在链接后面加target="_blank",我们採用过渡型的DOCTYPE(xh tml1-transitional. dtd)时没有问题,可是 ...
- xcode 高亮
Cmd+E, Cmd+F and Cmd+G combo is usefull. Depending on why you want to do this, edit all in scope (Ct ...
- Android(java)学习笔记151: SurfaceView使用
1.SurfaceView简介 在一般的情况下,应用程序的View都是在相同的GUI线程(UI主线程)中绘制的.这个主应用程序线程同时也用来处理所有的用户交互(例如,按钮单击或者文本输入) ...
- 使用Netty进行Android与Server端通信实现文字发送接收与图片上传
ANOTHER TITLE: Let’s use netty to achieve text send and receive and image transfer to server based ...
- js calendar橙色日期选择器代码
原文出处 http://files.cnblogs.com/files/quixon/date_js.rar
- c中计时的几种方法
C计时的几种方法说明及例程 1. 使用clock() 函数 头文件:<time.h> clock()函数,返回“自程序启动到调用该函数,CPU时钟的计时单元数(clock tick)” 每 ...
- js选中checkbox赋值给文本框
//js $(function(){ var name=""; var kmname=[]; var n= $("input[type=checkbox]"). ...
- 20151212jquery学习笔记--工具函数
工具函数是指直接依附于 jQuery 对象,针对 jQuery 对象本身定义的方法,即全局性 的函数.它的作用主要是提供比如字符串.数组.对象等操作方面的遍历. 一.字符串操作 在 jQuery 中, ...
- WebSocket 实战
http://www.ibm.com/developerworks/cn/java/j-lo-WebSocket/ 本文介绍了 HTML5 WebSocket 的由来,运作机制及客户端和服务端的 AP ...