组合逻辑电路教学课件.ppt

  1. 1、本文档共201页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 一般用法: condition_expr?expr1:expr2; 条件运算符 是三目运算符,运算时根据条件表达式的值选择表达式。 首先计算第一个操作数condition_expr的值,如果结果为逻辑1, 则选择第二个操作数expr1的值作为结果返回,结果为逻辑0, 选择第三个操作数expr2的值作为结果返回。 * 2、数据流建模举例 连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。 注意,在assign语句中,左边变量的数据类型必须是wire型。 数据流建模使用的基本语句是连续赋值语句assign ,该语句用于对wire型变量进行赋值, 它由关键词assign开始,后面跟着由操作数和运算符组成的逻辑表达式。 2选1数据选择器的连续赋值描述是: wire A,B,SEL,L; //声明4个连线型变量 assign L=(A ~SEL)|(B SEL); //连续赋值 * //Dataflow description of a 2-to-4-line decoder, module decoder_df (A1,A0,E,Y); input A1,A0,E; output [3:0] Y; assign Y[0] = ~(~A1 ~A0 ~E); assign Y[1] = ~(~A1 A0 ~E); assign Y[2] = ~(A1 ~A0 ~E); assign Y[3] = ~(A1 A0 ~E); endmodule * //Dataflow description of 2-to-1-line multiplexer module mux2x1_df (A,B,SEL,L); input A,B,SEL; output L; assign L = SEL ? A : B; endmodule 用条件运算符描述了一个2选1的数据选择器。 在连续赋值语句中,如果SEL=1,则输出L=A;否则L=B。 * 4.6.3 组合逻辑电路的行为级建模 行为级建模就是描述数字逻辑电路的功能和算法。 一般使用always结构,后面跟着一系列过程赋值语句,给reg类型的变量赋值。 * if (condition_expr1) true_statement1; else if (condition_expr2) true_statement2; else if (condition_expr3) true_statement3; …… else default_statement; 1、条件语句( if语句) 条件语句就是根据判断条件是否成立,确定下一步的运算。 if (condition_expr) true_statement; if (condition_expr) true_statement; else fale_ statement; Verilog语言中有3种形式的if语句: if后面的条件表达式一般为逻辑表达式或关系表达式。执行if语句时,首先计算表达式的值,若结果为0、x或z,按“假”处理;若结果为1,按“真”处理,并执行相应的语句。 * 是一种多分支条件选择语句,一般形式如下: case (case_expr) item_expr1: statement1; item_expr2: statement2; …… default: default_statement; //default语句可以省略 2、多路分支语句(case语句) * //Behavioral description of 2-to-1-line multiplexer module mux2to1_bh(A, B, SEL, L); input A, B, SEL; output L; reg L; //define register variable always @(SEL or A or B) if (SEL == 1) L = b; //也可以写成 if (SEL) L=B; else L = A; endmodule 例 * //Behavioral description of 4-to-1-line multiplexer module mux4

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档