- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]第四章 VHDL典型语句
第四章 VHDL典型语句 4.1 VHDL顺序语句 4.2 VHDL并行语句 4.3子程序 4.4程序包、配置 进程语句内部称为顺序部分,用顺序语句进行描述; 进程语句外的语句就是并行部分。并行语句又称并发语句,各种并行语句的执行与语句书写顺序无关,当某一信号变化时,由此信号触发的所有语句将同时被执行。 4.1 VHDL顺序语句 4.1.1 赋值语句 赋值语句的功能就是将一个值或一个表达式的运算结果传递给某一数据对象,如信号、变量、或由此组成的数组。 (1) 信号代入语句 1.由于高阻‘Z’状态作为电路的输入时,等效于输入为开路状态,所以常量高阻‘Z’任何时候都不能出现在表达式中。 2.在VHDL语言中,信号只能在结构体中说明,但可以在并行语句和顺序语句中使用;在进程、过程、函数中使用的信号代入语句就是顺序语句,在结构体中则为并行语句。二者在语法上是一样的。 3. 信号代入语句作为顺序语句使用时,表达式的运算结果并不是在语句运行后立即代入到信号中,而是只有在进程(函数、过程)的最后一条结束后(如进程即将挂起前),进程中的所有的信号代入语句结果同时赋值。所以在同一个进程中如果一个信号被代入多次,编译器有可能会给出错误警告并退出综合过程或只给出最后的执行语句有效。 例如: --该例子在编译的时候,出现了错误警告。 s=a OR b; s=a AND b; 4.1.2 条件控制语句 1. IF语句 使用IF语句需要注意的事项: (1)IF语句是一种条件语句,语句中至少应有一个条件句,条件结果必须是BOOLEAN类型值。 (2)IF语句根据条件句产生的判断结果TRUE或FALSE,有条件地选择执行其后的顺序语句。如果某个条件句的布尔值为真(TRUE),则执行该条件句后的关键词THEN后面的顺序语句,否则结束该条件的执行,或执行ELSIF或ELSE后面的顺序语句后结束该条件句的执行……直到执行到最外层的END IF语句,才完成全部IF语句的执行。 (3) IF语句可嵌套使用,即在一个IF语句中可再调用另一个“IF”语句。 (4) 可以有多个elsif部分,但只能有一个else。 (5)IF语句不仅能实现条件分支处理,而且在条件判断上有优先级,因此特别适合描述含有优先级的电路。 (6) 从设计人员的思维习惯出发,他们会更倾向于使用IF语句。但是,使用IF语句也会对电路带来负面影响,因为IF语句在综合时可能会产生不必要的优先级解码电路。目前的一些综合工具在处理这类语句时会对其结构进行优化,以避免占用过多的硬件资源。 2. CASE语句 WHEN后面的选择值可以有四种表达方式; 单个普通数值,如6 ,’1’等; 并列数值,如3|5,表示取值为3或5; 数值选择范围,如( 4 DOWNTO 2)表示取值为4、3、2; WHEN OTHERS = 顺序语句。 1、CASE语句的功能是根据表达式满足的条件直接选择多项顺序语句中的一项执行,类似于IF语句,但是可读性比IF语句好。 2、当执行到CASE语句时,首先计算CASE和IS之间的表达式的值,然后根据条件语句中与之相同的选择值,执行对应的顺序语句,最后结束CASE语句。 3、CASE语句中的“=”不是操作符,它只相当于“THEN”的作用。 4、CASE语句中每一条语句的选择值只能出现一次,即不能有相同选择值的条件语句出现。 4、 CASE语句执行中必须选中,且只能选中所列条件语句中的一条,即CASE语句至少包含一个条件语句。 5、除非所有条件语句中的选择值能完全覆盖CASE语句中表达式的取值,否则“OTHERS”子句不应该省略。并且关键词OTHERS只能出现一次,且只能作为最后一种条件取值。 6、使用OTHERS是为了使条件语句中的所有选择值能覆盖表达式的所有取值,以免综合过程中插入不必要的锁存器。这一点对于定义为STD_LOGIC和STD_LOGIC_VECTOR数据类型的值尤为重要,因为这些数据对象的取值除了1、0之外,还可能出现输入高阻态Z,不定态X等取值,难以列举表达式的全部可能取值。 IF语句和CASE语句都是条件语句,但是两者也有很大的区别,主要体现在以下几点: (1)IF语句描述功能更强,有些CASE语句无法描述的内容(如描述含有优先级的内容时)IF语句可以描述。 (2)CASE语句描述比IF语句更直观,这是因为CASE语句把条件中所有可能出现的情况全部列出来了,可执行条件一目了然。 (3) 与IF语句相比,CASE语句组的程序语句是没有先后顺序的,所有表达式的值都并
您可能关注的文档
最近下载
- 眼外伤ppt课件-眼外伤健康教育课件.ppt VIP
- 《新时代思想读本》3.2新时代新征程课件.pptx VIP
- 2024-2025学年初中信息科技湘教版2024七年级上册-湘教版2024教学设计合集.docx
- 人教鄂教版科学四年级上册全册教学设计教案.doc
- DB11T 945.1-2023建设工程施工现场安全防护、场容卫生及消防保卫标准 第1部分:通则.pdf VIP
- 外研版六年级(上册)M4U2.ppt VIP
- 大学课程思政案例(高校课程思政案例)-思政案例内容整理.docx VIP
- 《无人机综合监管与航路规划》全套教学课件.pptx VIP
- (优质!)Amfori BSCI社会责任验厂全套管理手册及程序文件.docx VIP
- 自-电大__电工电子技术总复习题及答案 .doc VIP
文档评论(0)