- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 3.4.6 条件操作符 条件操作符的语法为: LHS = condition ? true_expression:false_expression; 其意思是:if condition is TRUE, then LHS=true_expression, else LHS = false_expression 每个条件操作符必须有三个参数,缺少任何一个都会产生错误。最后一个操作数作为缺省值。 例如:assign out = (sel == 0) ? a : b; 若sel为0则out =a;若sel为1则out = b;如果sel为x或z,则结果可能为x或z。 * 条件操作符-使用实例 module likebufif( in, en, out); input in; input en; output out; assign out = (en == 1) ? in : bz; endmodule module like4to1( a, b, c, d, sel, out); input a, b, c, d; input [1: 0] sel; output out; assign out = sel == 2b00 ? a : sel == 2b01 ? b : sel == 2b10 ? c : d; endmodule 如果条件值为x或z,则结果可能为x或z * 3.4.7 移位操作符 移位操作符有: (左移) (右移) 如 rega 5 意思是rega向左移5位; rega 3 意思是rega向右移3位; 移位操作符对其左边的操作数进行向左或向右的位移位操作。 第二个操作数(移位位数)是无符号数。 * module shift_test; reg [9: 0] num, num1; reg [7: 0] rega, regb; … //如果rega = 8b0000 1100; num = rega 5 ; // num=10b01 1000 0000 regb = rega 5 ; // regb=8b1000 0000 num1 = rega 3; // num1=10b00 0000 0001 … endmodule 左移先补后移 右移先移后补 建议:移位操作最好表达式左右两边位数一致,如上面的 reg [7: 0] rega, regb; * 3.4.8 连接操作 连接操作是将小表达式合并形成大表达式的操作。形式如下: {expr1, expr2, . . .,exprN} * 连接操作实例 wire [9:0] d; wire [9:0] a; assign d[9:5] = {a[0], a[1], a[2], a[3], a[4] } ; //以反转的顺序将a的低端4位赋给d的高端4位。 assign d= {d[4:0], d[9:5] } ; //高4位与低4位交换。 * 由于非定长常数的长度未知, 不允许连接非定长常数。例如, 下列式子非法: reg [16:0] a; reg [31:0] d; … d= {a,5}; //error!!不允许连接操作非定长常数。 d= {a,16h0005}; // error!!右边33位,左边32位,位宽不匹配,一样会出错 改为: d= {a, 15h5}; 连接操作注意事项 * 3.4.9 复制操作 复制通过指定重复次数来执行操作。 语法形式如下: {repetition_number{expr1,expr2, ...,exprn} } * 例一: wire [7:0] d; wire [11:0] a; … assign d={2{4b1011}}; //d等于8b1011 1011 assign a= {{4{d[7]}}, d};
您可能关注的文档
最近下载
- 加油站建设项目监理月报.docx VIP
- 基于物联网的智能大棚监测系统的研究与设计.doc VIP
- 国内水路运输管理条例(2023修订)深度解读.pptx VIP
- 广州市建设工程安全文明施工规程(试行版)2021年6月_部分2.pdf VIP
- 湘质监房建表格2020.docx VIP
- 降低患者跌倒坠床所致伤害发生率.docx VIP
- 【初中语文】第11课《山地回忆》课件+2024—2025学年统编版语文七年级下册.pptx VIP
- 12ZG206 钢筋混凝土锚杆静压桩.pdf VIP
- 宜搭低代码开发师(中级)部分考题.docx VIP
- 2025年山东省青岛市辅警招聘考试题题库(含参考答案).docx VIP
文档评论(0)