湘潭大学本部2011级eda作业答案 (1)

湘潭大学本部2011级eda作业答案 (1)

ID:21947058

大小:543.17 KB

页数:16页

时间:2018-10-25

湘潭大学本部2011级eda作业答案 (1)_第1页
湘潭大学本部2011级eda作业答案 (1)_第2页
湘潭大学本部2011级eda作业答案 (1)_第3页
湘潭大学本部2011级eda作业答案 (1)_第4页
湘潭大学本部2011级eda作业答案 (1)_第5页
资源描述:

《湘潭大学本部2011级eda作业答案 (1)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、答案由个人做出,可能有不全或错误之处,欢迎大家批评指正。(抱歉,2.7之前错了)2.7判断下列VHDL标识符是否合法,如果不合法则指出原因。第1,4,5合法,其他都不合法说明:VHDL基本标识符的书写规则遵守如下规则:(1)有效的字符,包括26个大小写英文字母,数字包括0~9以及下划线“-”。(2)任何标识符必须以英文字母开头。(3)必须是单一下划线“-”,且其前后都必须有英文字母或数字。(4)标识符中的英文字母部分大小写。(5)允许包含图形符号(如回车、换行符等),也允许包含空格符。(6)不能是关键字(如return等)。2.8

2、讨论数据对象信号与变量间的异同处,说明它们的使用对所形成的硬件结构有何影响。同:它们都是数据对象,可以接收不同数据类型的赋值。它们定义的语句格式相似,初始值的设置也不是必需的,而且初始值都仅在VHDL的行为仿真中有效。异:变量时一个局部量,只能在进程和子程序中使用。信号的使用和定义范围是实体、结构体和程序包中,在进程和子程序的顺序语句中不允许定义信号。在进程中只能将信号列入敏感表,而不能将变量列入敏感表。影响:变量不能将信息带出对它定义的当前结构。变量的赋值是一种理想化的数据传输,是立即发生的,不存在任何延时行为。信号的赋值总要经

3、历一定的延时,因此,符号“<=”两边的数值并不总是一致的。因而信号不但可以容纳当前值,也可以保持历史值。2.12判断下面3例VHDL程序中是否有错误,如有错误指出原因。程序1:把ifEN=1改为ifEN=’1’;把B<=A改为B:=A程序2:variablea,b,c:integer错误,变量的定义和使用只能在进程和子程序中使用。c<=a+b错误,变量的赋值用“:=”程序3:c:outstd_logic;这个分号不能有endsam2改为endmux21(实体名要一致);c:=a和c:=b改为c<=a和c<=b(a,b,c都是信号,

4、信号的赋值用“<=”);endtwo改为endone(实体名应一致)因为if语句是顺序语句,所以应该放在进程或子程序中注意:结束实体和结束结构体的语句三种都是可以的(endentity实体名;、end实体名;、end;。endarchitectare结构体名;、end结构体名;、end;。)2.29用VHDL设计实现一百进制计数器libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt100isport(clk,rst,en:in

5、std_logic;cq:outstd_logic_vector(6downto0);cout:outstd_logic);endcnt100;architecturebehavofcnt100isbeginprocess(clk,rst,en)variablecqi:std_logic_vector(6downto0);beginifrst='1'thencqi:=(others=>'0');elsifclk'eventandclk='1'thenifen='1'thenifcqi<99thencqi:=cqi+1;elsecq

6、i:=(others=>'0');endif;endif;endif;ifcqi=99thencout<='1';elsecout<='0';endif;cq<=cqi;endprocess;endbehav;2.2子程序调用与元件例化有何区别?函数与过程在具体使用上有何不同?子程序调用与元件例化没有本质的区别,调用一个子程序在硬件上相当于放置了一个电路模块。函数和过程的不同在于:函数只有一个输出,只能通过函数体内的RETURN语句来实现,函数体内不能有信号赋值语句;而过程却可以有不止一个输出,而且是通过过程体内的信号赋值语句或者

7、变量赋值语句来实现的,过程体内的RETURN语句没有用处,因此不少过程都将其省略了。函数的调用只能通过表达式来实现,过程的调用则是通过过程调用语句来实现的。2.3什么是重载函数?重载算符有何用处?如何调用重载算符函数?同样名称的函数可以用不同的数据类型作为此函数的参数定义多次,以此定义的函数称为重载函数。被重载的运算符能够对新的数据类型进行操作,或者允许不同的数据类型之间用此运算符进行运算。按重载运算符的方式严格调用重载算符函数2.13分别用CASE语句和IF语句设计3-8译码器CASE:libraryieee;useieee.s

8、td_logic_1164.all;entitysssisport(a:instd_logic_vector(2downto0);cout:outstd_logic_vector(7downto0));end;architectureoneofss

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。