- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 并发代码;5.1 回忆组合电路和时序电路
组合电路:y=f(输入)
组合电路有:加法器,减法器,数据选择器,编码器,译码器,奇偶校验器等
时序电路:y=f(输入,状态)
时序电路:触发器,计数器,分频器,移位寄存器,控制器
VHDL中的语句:并行语句
顺序语句;并行代码:使用运算表达式对信号赋值
when语句
生成语句
块语句
进程(顺序代码)
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_logic_1164.all
Entity my_mux is
Port(a,b,c,d,so,s1:in std_logic;
Y:std_logic);
End my_mux;
Architecture bhv of my_mux is
Begin
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:设计编码器(普通编码器,优先级编码器)
普通编码器:
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 is
Begin
Y=111 when xelse
110 when xelse
101 when xelse
101 when xelse
011 when xelse
010 when xelse
001 when xelse
000 when xelse
ZZZ;
End bhv;;;优先级编码器:
Architecture bhv of encoder is
Begin
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(2)=’1 else
“001” when x(1)=’1’”else
“000” when x(0)=’1’else
“ZZZ”;
End bhv;;;2、选择赋值语句
根据选择项不同的选择值,对信号赋值
语法: with 选择项 select
信号=表达式1 when 选择值1,
表达式2 when 选择值2,
………..
表达式n when 选择值n;
说明:①选择值必须包含所有选择项可能出项的值,经常用到others,而且非常重要。
;例3:多路选择器设计
Library ieee;
文档评论(0)