- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]6设计进阶
* JCXY * EDA技术实用教程 第6章 VHDL设计进阶 6.1 数据对象DATA OBJECTS 6.1.1 常数(CONSTANT) 常数的值不变,它可以在任何部分说明,并可以是任意数据类型 常数定义的一般表述: CONSTANT 常数名:数据类型 := 表达式 ; 例如: CONSTANT FBT: STD_LOGIC_VECTOR :=“010110”; CONSTANT DATA: INTEGER:=15; 6.1 数据对象DATA OBJECTS 变量可以改变值,它可以在进程和子程序中说明,并可以是任意数据类型. 6.1.2 变量(VARIABLE) 定义变量的一般表述: VARIABLE 变量名 : 数据类型 := 初始值 ; 例如: VARIABLE muxval : integer range 7 downto 0; muxval:=0; VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); CQI := (OTHERS =0) 6.1 数据对象DATA OBJECTS 信号可以随时间而改变值,它可以在结构中说明,并可以是任意数据类型. 6.1.3 信号(SIGNAL) 定义格式: SIGNAL 信号名: 数据类型 := 初始值 ; 赋值: 信号名=同类型的值; 6.1.4 进程中的信号与变量赋值语句 表6-1 信号与变量赋值语句功能的比较 信号SIGNAL 变量VARIABLE 基本用法 用于作为电路中的信号连线 用于作为进程中局部数据存储单元 适用范围 在整个结构体内的任何地方都能适用 只能在所定义的进程中使用 行为特性 在进程的最后才对信号赋值 立即赋值 行为特性的三个方面 (1) 信号赋值需要一个δ延时。 (2)在一个进程中,所有赋值语句(包括变量赋值),在进程启动时立即执行赋值操作,但信号赋值须在一个δ延时后完成(END )。 (3) 当在进程中存在对同一信号多次赋值时,最后一个赋值有效。 【例6-5】 SIGNAL in1,in2,e1, ... : STD_LOGIC ; ... PROCESS(in1,in2, . . .) VARIABLE c1,. . . : STD_LOGIC_VECTOR(3 DOWNTO 0) ; BEGIN IF in1 = 1 THEN ... –- 第 1 行 e1 = 1010 ; –- 第 2 行 ... IF in2 = 0 THEN . . . –- 第 15+n 行 ... c1 := 0011 ; –- 第 30+m 行 ... END IF; END PROCESS; 6.1.4 进程中的信号与变量赋值语句 【例6-1】 ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS (CLK) VARIABLE QQ : STD_LOGIC ; BEGIN IF CLKEVENT AND CLK = 1 THEN QQ := D1 ; END IF; Q1 = QQ; END PROCESS ; END ; . . . 【例6-2】 ARCHITECTURE bhv OF DFF3 IS SIGNAL QQ : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK =1 THEN QQ = D1 ; END IF; Q1 = QQ; END PROCESS ; END ; 6.1.4 进程中的信号与变量赋值语句 信号与变量__相同综合结果示例 6.1.4 进程中的信号与变量赋
文档评论(0)