《VHDL第一讲.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《VHDL第一讲

贴心建议:初学时,对于简单的程序,先尽自己努力看懂每一句话,从字面上先去理解,通过英文单词的意思,自己先去琢磨该段程序所要实现的功能,然后再去和正确的意思相比对,这样比一开始就去看解释来的记忆深刻,这些是我自己的切身体会。 1.三输入与非门 在数字电路设计中,门电路是最基本的电路单元。在这里我们挑选了比较典型的三输入的与非门,完成我们的第一个设计。 三输入与非门的逻辑表达式: 逻辑符号为: 源代码: 逐行解释: 1:库声明。告诉编译器,我要使用这个库里的内容。语法是:LIBRARY 库名;(结束有个分号的,别丢了,这个分号是每条语句的结束标志,每条语句最后都是要有分号的,这是它们的标配)。 2~4:声明所选择的程序包名称,ALL就是打开整个程序包。一个库里当然有很多的程序包了,给编译器指明一下那个包要用,好缩小它的搜寻范围。别让它满库的找,怪费俺们的CPU的。语法:USE 库名.程序包.程序包的组成部分;。 一句话总结:1和2两句其实相当于C中的“#include”,使被声明的库和库中的元件对当前设计项目可见。 发散:IEEE库是最重要的资源库,我们经常使用其中的一些信号定义和数据的定义。列举一下其中比较重要的几个程序包: (1)STD_LOGIC_1164:指定了STD_LOGIC和STD_ULOGIC逻辑系统 (2)STD_LOGIC_ARITH:包含SIGNED和UNSIGNED数据类型定义和相应的算术和比较操作还包含了几个数据转换函数,允许数据从一个类型转换为另一个类型。 (3)STD_LOGIC_UNSIGNED: CONV_INTEGER(A) 由INTEGER,UNSDGNED,SIGNED转换成STD_LOGIC_VECTOR 由UNSIGNED,SIGNED转换成INTEGER”连接”这些引脚就行了.有点象OOP(面向对象设计)里的封装.呵呵. 语法: PORT( 端口名A : 信号模式(即端口的数据流向) 类型; 端口名 B : 信号模式(即端口的数据流向) 类型(最后一个没有分号) );(这儿有分号) 发散:信号的模式包括IN(输入),OUT(输出),inout(双向),buffer(缓冲).注意:out 是不能在程序中读的,inout是双向的,可以反馈内部而被程序可读.假设O是输出端口,S是程序里面的一个信号,你想着程序中看看这个输出对不对,于是这样写S=O,你会得到一个error: Error (10309): VHDL Interface Declaration error in nand3_gate.vhd(19): interface object O of mode out cannot be read. Change object mode to buffer or inout. 看看其建议是:Change object mode to buffer or inout---改成buffer或inout模式,这样就以在程序中可读了。 Buffer我在以后用到的时候再讲解。 一点小的建议(也是为了程序的美观和规范):在书写端口时,输入端口先在前,再写双向端口,最后写输出端口。 数据类型我们最常用的是STD_LOGIC和STD_LOGIC_VECTOR。STD_LOGIC中文名叫标准逻辑位,有九种可选值,包括(‘U’,‘X’,‘0’,‘1’,‘Z’,‘W’,‘L’,‘H’,‘-’)‘U’:未初始化的, ‘X’:强未知的, ‘0’:强0, ‘1’:强1, ‘Z’:高阻态,??? ‘W’:弱未知的, ‘L’:弱0,??????? ‘H’:弱1, ‘-’:忽略”1000_1110”-----即DATA_A[7…0] DATA_B=”1000_1110”-----即DATA_A[7…0] 一组位数据要用双引号(“”),单个的位数据用单引号(‘’),而且数据的位数和你所定义的位数要一致,就象这个车载重量只能是5顿,你偏偏要载10顿,这样的话交警可是不会让你通过的。 12.实体描述结束.。语法:END 实体名;。 14~18:结构体,是描述该实体的功能的。相当于C中的main()函数了。 14:结构体名。语法:ARCHITECTURE 机构体名 OF 实体名 IS ,就是指明该结构体是那个归那个实体所管。一个实体可有好多个结构体。 15: 结构体描述区.就是要定义一些在这个程序里要用的SIGNAL(信号),componet(元件)等信息.相当于C中的定义变量.在这个程序中我们没用这块区域.(已用”--”给注释掉了) 16:开始标志。用BEGIN来标志. 17:结构体的描述。包括元件映射语句,信号赋值语句,进程语句和子程序。在这个

文档评论(0)

1789811832 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档