第3章Verilog基本语法(已排).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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};

文档评论(0)

339910001 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档