




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 并发代码5.1 回忆组合电路和时序电路回忆组合电路和时序电路组合电路:组合电路:y=f(输入)(输入) 组合电路有:加法器,减法器,数据选择组合电路有:加法器,减法器,数据选择器,编码器,译码器,奇偶校验器等器,编码器,译码器,奇偶校验器等时序电路:时序电路:y=f(输入,状态输入,状态) 时序电路:触发器,计数器,分频器,时序电路:触发器,计数器,分频器,移位寄存器,控制器移位寄存器,控制器VHDL中的语句:并行语句中的语句:并行语句 顺序语句顺序语句并行代码:使用运算表达式对信号赋值并行代码:使用运算表达式对信号赋值 when语句语句 生成语句生成语句 块语句块语句 进程(顺序代码
2、)进程(顺序代码)5.2使用运算表达式使用运算表达式 实现组合电路设计实现组合电路设计 例例1:4位加法器设计位加法器设计 5.3 WHEN 语句语句有两种:条件赋值和选择赋值有两种:条件赋值和选择赋值1、条件赋值(、条件赋值(when/else语句)语句) 判断根据不同的条件对信号赋值判断根据不同的条件对信号赋值格式:信号格式:信号=值值1 when 条件条件1 else 值值2 when 条件条件2 else . 值值n;(最后不加条件,表示以上条件都不满足)(最后不加条件,表示以上条件都不满足)例例1:多路数据选择器:多路数据选择器Library ieee;Use ieee.std_lo
3、gic_1164.allEntity my_mux is Port(a,b,c,d,so,s1:in std_logic; Y:std_logic);End my_mux;Architecture bhv of my_mux isBegin Y=a when s1=0 and s0=0 else b when s1=0 and s0=1 else c when s1=1 and s0=0 else d;End bhv;仿真图:仿真图:注:条件赋值语句是基于顺序判断,条件判断注:条件赋值语句是基于顺序判断,条件判断 有优先级。有优先级。例例2:设计编码器(普通编码器,优先级编码器):设计编码器(
4、普通编码器,优先级编码器)普通编码器:普通编码器:Library ieee;Use ieee.std_logic_1164.all;Entity encoder is Port(x:in std_logic_vector(7 downto 0); Y:out std_logic_vector(2 downto 0);End encoder;Architecture bhv of encoder isBegin Y=111 when x=10000000 else 110 when x=01000000 else 101 when x=00100000 else 101 when x=00010
5、000 else 011 when x=00001000 else 010 when x=00000100 else 001 when x=00000010 else 000 when x=00000001 else ZZZ;End bhv;优先级编码器:优先级编码器:Architecture bhv of encoder isBegin Y=”111” when x(7)=1 else “110” when x(6)=1 else “101” when x(5)=1 else “100” when x(4)=1”else “011” when x(3)=1 else “010” when x
6、(2)=1 else “001” when x(1)=1”else “000” when x(0)=1else “ZZZ”;End bhv;2、选择赋值语句、选择赋值语句根据选择项不同的选择值,对信号赋值根据选择项不同的选择值,对信号赋值语法:语法: with 选择项选择项 select 信号信号=表达式表达式1 when 选择值选择值1, 表达式表达式2 when 选择值选择值2, . 表达式表达式n when 选择值选择值n;说明:说明:选择值必须包含所有选择项可能出项选择值必须包含所有选择项可能出项的值,经常用到的值,经常用到others,而且非常重要。,而且非常重要。 例例3:多路选择
7、器设计:多路选择器设计Library ieee;Use ieee.std_logic_1164 .all;Entity my_mux isPort (a,b,c,d:in std_logic; sel:in std_logic_vector(1 downto 0); y:out std_logc);End my_mux;Architecture bhv of my_mux is begin With sel select Y=a when “00”, b when “01”, c when “10”, d when others;End bhv;例例4:一位全加器的设计:一位全加器的设计Lib
8、rary ieee;Use ieee.std_logic_1164.all;Entity adder is Port (a,b,ci:in std_logic; S,co:out std_logic); End adder;Architecture bhv of adder is Signal temp:std_logic_vector(2 downto 0);Begin Temp=a&b&ci; With temp select S=0 when “000”|”011”|”101”|”110”, 1 when others; Co=0 when “000”|”001”|”01
9、0”|”100”, 1 when others;End bhv;例例5:三态缓冲器:三态缓冲器ena为低电平时,输出等于输入,否则,输出为高阻状态、为低电平时,输出等于输入,否则,输出为高阻状态、Library ieee;Use ieee.std_logic_1164.all;Entity tri_state s Port ( ena:in std_logic; Input:in std_logic_vector(7 downto 0); Output:out std_logic_vector(7 downto 0);End tri_state;Architecture bhv of tri_
10、state is Begin Output=input when ena=0 else “ZZZZZZZZ”; End bhv;最后:总结选择赋值和条件赋值语句的区别:最后:总结选择赋值和条件赋值语句的区别: 条件赋值是基于顺序判断条件的判断,条件赋值是基于顺序判断条件的判断, 有优先有优先级,占用资源少;级,占用资源少; 选择赋值语句无优先级,占用资源多。选择赋值语句无优先级,占用资源多。5.3 块语句(块语句(block)语法: 标号:block begin 并发代码 end block 标号;例:a1:block begin end block;注:块语句只为程序结构读起来更清晰,对硬件
11、电路没有任何影响。5.4 生成语句(generate) (1)for-generate (2) if generate1. for-generate 语句 (循环生成具有某些规律和特点的并行代码)语法: 标号: for 循环变量 in 范围 generate 并行语句 end generate;说明:(1)for-generate 循环范围中的上下限必需是 静态数据 (2)注意多值驱动问题(不允许一个信号被赋予多个 值) 例:使用for-generate 语句实现电路要求功能。S(7)=x(3) and y(7);S(6)=x(2) and y(6);S(5)=x(1) and y(5);S(
12、4)=x(0) and y(4);S(3)=z(3) and y(3);S(2)=z(2) and y(2);S(1)=z(1) and y(1);S(0)=z(0) and y(0);Library ieee;Use ieee.std_logic_1164 .all;Entity encoder isPort (x,z,:in std_logic_vector(3 downto 0); y:in std_logic_vector(7 downto 0); s:out std_logc_vector(7 downto 0);End encoder;Architecture bhv of enc
13、oder is begin a1:for i in 7 downto 4 generate s(i)=x(i-4) and y(i); end generate; a2:for i in 3 downto 0 generate s(i)=z(i) and y(i); end generate;End bhv; 例:例:4位二进制数转格雷码位二进制数转格雷码Library ieee;Use ieee.std_logic_1164 .all;Entity grad is Generic(n:integer:=4);Port (x:in std_logic_vector(3 downto 0); y:out std_logic_vector(3 downto 0);End grad;Architecture bhv of grad is
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度联营股本借款合同全文
- 2025铝合金门窗制作合同
- 2025商务合作合同模板
- 2025全新版委托维修合同
- 2025年签订股权转让合同的要点分析及合同范本
- 2025年上海房屋租赁合同范本
- 2025年:探讨合同规范化管理对企业发展的长远意义
- 《危重患者的观察要点》课件
- 《艺术史概述:唐宋元明清》课件
- 《供应链管理》课件
- 劳动保障协理员试题
- 安徽中等专业学校毕业生登记表
- 《多边形的面积》单元整体作业设计
- 同济大学《高等数学》第七版上、下册答案(详解)
- 三一sy215c8零件手册SY215C8液压挖掘机零部件图册
- 2023年和田地区体育教师招聘笔试题库及答案
- GB/T 25150-2010工业设备化学清洗中奥氏体不锈钢钝化膜质量的测试方法蓝点法
- 肉毒毒素作用机制理论测试
- GB/T 20641-2006低压成套开关设备和控制设备空壳体的一般要求
- GB/T 18618-2002产品几何量技术规范(GPS)表面结构轮廓法图形参数
- GB/T 10183.1-2018起重机车轮及大车和小车轨道公差第1部分:总则
评论
0/150
提交评论