- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
//if-else条件分支语句应用举例 module sel-from-three (q,sela,selb,a,b,c) ; input sela,selb,a,b,c ; output q ; reg q ; always @ (sela or selb or a or b or c) begin if (sela) q=a ; else if (selb) q=b ; else q=c ; end endmodule sela selb 语句 0 0 q=c 0 1 q=b 1 0 q=a 1 1 q=a 注意隐含的优先级关系。排在前面的分支项指定的操作具有较高优先级。例:11时,执行q=a,不是q=b。 (2) case 分支控制语句 相对if-else语句只有两个分支而言,case语句是一种多分支语句。所以,常用来描述译码器、多路数据选择器、微处理器的指令译码和有限状态机。 case 分支控制语句有三种形式: case casex casez 全等比较分支控制 局部比较分支控制 “全等比较分支控制” case 语句的格式: case (控制表达式) 分支项表达式1 :语句块1 ; 分支项表达式2 :语句块2 ; … … 分支项表达式n :语句块n ; default : 语句块n+1 ; endcase 对程序流向进行控制的信号(变量) 控制信号(变量)的具体状态组合取值 受控的分支操作,可单句,也可多句。 未列入分支控制的状态组合下应进行的操作 未列入分支控制的状态组合的统称。 (其余状态时) 与真值表存在某种对应关系 按位全等比较case语句示例 … … case (op_code) 2′b00 : out = a ︱b ; 2′b01 : out = a b ; 2′b10 : out = ~ (a b) ; 2′b11 : out = a ^ b ; default : out = 0 ; endcase … … case语句在执行时,控制表达式和分支项表达式之间进行的是按位全等比较,只有对应每一位都相等,才认为控制表达式和分支项表达式是相等的。显然,这种比较包含了信号的 0 、 1 、x 、z 四种状态。 根据按位全等比较的特点,要求case语句中的控制表达式和分支项表达式必须具有相同的位宽。当各个分支项表达式以常数形式给出时,必须明确标明位宽,否则编译器默认为与机器字长相同的位宽(例如32位)。 能不能忽略信号的 x 和 z 逻辑状态的比较? 这就引出了“局部比较”分支控制的casex和casez语句。 利用控制表达式和分支项表达式中某些位的比较结果控制程序流向。 casez 语句——忽略处于“z”逻辑状态位的比较。 casex语句——忽略处于“x”或“z”逻辑状态位的比较。 算 术 运 算 符 + 加 - 减 * 乘 / 除 % 模运算符(对两个整型数据进行求余运算) 均为双目运算符。 在进行整数除法运算时,结果略去小数。 取模运算时,结果符号与第一操作数相同。 当两操作数中有一个为 x ,则结果就为 x 。 10%3,结果为1; 12%4,结果为0; -10%3,结果为-1; 11%-3,结果为2 逻 辑 运 算 符 逻辑与,双目运算 ‖ 逻辑或,双目运算 ! 逻辑非,单目运算 当进行逻辑运算时: ● 若操作数是一位的,则逻辑运算真值表如下: a b ab a||b !a !b 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 ● 当操作数由多位组成,则将操作数作为一个整体处理,即如操作数所有位都是“0”,则
文档评论(0)