- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VHDL与数字电路设计PPT课件-第四章 VHDL程序设计基础
VHDL与数字电路设计 本章内容 系统层次化设计方法 库和程序包 元件库 元件、块的配置及参数指定 子程序和运算符的重载 层次化设计实例 1、系统层次化设计方法 层次化设计方法的优点: 一些常用的模块可以被单独创建并存储,在以后的设计中可以直接调用该模块,而无需重新设计 使整个设计更结构化,程序也具有更高的可读性:顶层文件只将一些模块整合在一起,这使整个系统的设计思想比较容易被理解 设计“积木块”和搭“积木” 层次化设计的核心思想有两个: 模块化:可以将一个大系统划分为几个子模块,而这些子模块又分别由更小的模块组成,如此往下,直到不可再分。这也是自顶到下(Top-down)的设计方法。 元件重用(Reuse):同一个元件可以被不同的实体调用,也可以被同一个实体多次调用。这样做,不仅大大减轻了设计者的工作量,而且使程序更加结构化和具有更高的可读性。 实体A 实体B 实体C 实体D 实体E 实体F 实体G 实体H 2、库和程序包 库(LIBRARY)是用来存放预先编译好的设计单元的地方,通过其目录可查询。分为设计库和资源库两类。 设计库:STD和WORK库 STD库为所有的设计单元所共享、隐含定义、默认和“可见”。直接使用,无需声明。 STD库中有两个程序包:STABDARD和TEXTIO,这两个程序包都是VHDL语言编译工具的组成部分,只要用VHDL语言设计项目,这两个程序包就是必需的工具。 WORK库是VHDL语言的工作库,用于保存用户的以前编译过或正在进行的设计。EDA工具在编译一个VHDL程序时,通常默认它将保存在WORK库中。 如果需要引用WORK库中用户自己定义的例化元件和模块,需要声明。 IEEE库是最常用的资源库 使用USE子句,可以声明库中的单元为可见。 LIBRARY IEEE; USE IEEE.all; USE IEEE.std_logic_1164.all; 程序包(PACKAGE)是一种使包体中的元件、函数、类型说明,对其他设计实体是“可见”、可调用的设计单元。 常用的程序包: STANDARD TEXT10 std_logic_1164 包含std_Ulogic、std_Ulogic_vector、std_logic、std_logic_vector及其他常用函数。 Numeric_std Numeric_bit 3、元件库 构造元件 元件打包 构建元件库 调用元件 4、元件、块的配置及参数指定 配置:CONFIGURATION子句 参数指定:GENERIC子句 5、子程序和运算符的重载 在编写VHDL子程序的过程中,设计人员为了避免混淆常常需要为执行相同操作的子程序选取不同的子程序的名称。这样做的后果是不但降低了VHDL程序的可读性,而且会不可避免的发生子程序名称重复 的情况。 重载是指同样名称的子程序可以采用不同的参数类型、参数数目、不同返回值类型来对它多次定义,同时调用过程中不会发生混淆的一种现象。 子函数重载和运算符重载。 5.1 子程序重载 参数类型的重载 参数数目的重载 返回值类型的重载 FUNCTION max_value(a,b:integer) RETURN integer; FUNCTION max_value(a,b:std_logic_vector) RETURN std_logic_vector; FUNCTION max_value(a,b,c:integer) RETURN integer; FUNCTION max_value(a,b,c:std_logic_vector) RETURN std_logic_vector; FUNCTION max_value(a,b:std_logic_vector) RETURN integer; 主程序调用哪一个函数由以下条件决定: 实参的数据类型 实参的具体数目 使用带名字的参数关联时形参的名字 返回值类型 ENTITY maximum IS PORT(a1,b1:IN integer; a2,b2:IN std_logic_vector(3 downto 0); a3,b3,c3:In integer; a4,b4,c4:IN std_logic_vector(3 downto 0); a5,b5:std_logic_vector(3 downto 0); q1, q3, q5: OUT integer; q2, q4: OUT std_logic_vector(3 downto 0)) END maximum; ARCHITECTURE rtl OF maximum IS BEGIN q1=max_value(a1,b1);
您可能关注的文档
最近下载
- 稀土金属冶炼新纪元.pptx VIP
- 初中语文新人教部编版七年级上册课后习题答案(2024秋).doc
- 外交学院招聘考试题库2024 .docx
- JB∕T 10474-2015 巷道堆垛类机械式停车设备.pdf
- 作业08 物主代词-2024年英语七年级暑假作业(外研版)(含解析).docx VIP
- 浙江省宁波市慈溪市2023-2024学年高二上学期1月期末化学试题 Word版含答案.docx
- 小学四年级道德与法治下册9《生活离不开他们》课件.ppt
- 绿色冶炼:铁炼新纪元.pptx VIP
- 2023年南昌大学公共课《毛泽东思想和中国特色社会主义理论体系概论》期末试卷A(有答案).docx VIP
- 《工业网络技术与应用(微课版)》教学教案.docx
文档评论(0)