当前位置: 首页 > news >正文

网站备案 抽查免费注册google账号

网站备案 抽查,免费注册google账号,适合当手机主页的网站,北京王府井集团股份有限公司本文详细介绍了Verilog常用的运算符和表达式#xff0c;特别是分享了处理“计算位宽溢出”和“负数”的可行方式#xff0c;帮助读者更加轻松地理解和掌握Verilog语言的运算符。 一、常见运算符以及表达式 算数运算符#xff1a;加#xff08;#xff09;、减#xff08;… 本文详细介绍了Verilog常用的运算符和表达式特别是分享了处理“计算位宽溢出”和“负数”的可行方式帮助读者更加轻松地理解和掌握Verilog语言的运算符。 一、常见运算符以及表达式 算数运算符加、减-、乘*、除/、取余% 赋值运算符阻塞赋值、非阻塞赋值 关系运算符大于、小于、等于、不等于!、大于等于、小于等于 逻辑运算符与、或||、非! 条件运算符: 位运算符 取反~、或|、异或^、与 移位运算符左移、右移 拼接运算符位拼接{}复制{n{b}} 二、详细介绍 1、算数运算符 加、减-、乘*、除/、取余% 加法运算或者正值运算ab、a — 减法运算或者负值运算a—b、—a * 乘法运算a*b / 除法运算a/bb不能等于0 % 求余运算a%b%两侧的数据必须为整型数据b不能等于0 2、赋值运算符 阻塞赋值常用于组合逻辑例如assign语句和always(*)语句块。 wire [5:0] data0; reg [6:0] data1; ​ assign data0 d6; always(*) begindata1 d10; end 非阻塞赋值常用于时序逻辑例如alwaysposedge clk语句块。 reg [6:0] data1; ​ always(posedge clk) begindata1 d10; end 3、关系运算符 大于、小于、等于 不等于!、大于等于、小于等于 a b a小于b a b a大于b a b a等于b a ! b a不等于b a b a小于或等于b a b a大于或等于b 4、逻辑运算符 1与 逻辑与aba和b同时为真时才为真否则为假 2或|| 逻辑或a||ba和b同时为假时才为假否则为真 3非! a为真时!a为假 5、条件运算符 条件表达式的值为真或假如果为真返回值1否则返回值2。它主要用于简化if-else语句的书写和提高代码的可读性。 条件表达式 ? 值1 : 值2 assign a (b) ? b1 : b0; 如果b为真那么a b1否则a b0。 6、位运算符 1与 对两个数的二进制形式进行“与”运算只有两个相应位的值都为1时结果才为1。 2或| 对两个数的二进制形式进行“或”运算只要有一个相应位的值为1结果就为1。 3异或^ 对两个数的二进制形式进行“异或”运算当两个相应位的值不同时结果为1否则为0。 4取反~ 对一个数的二进制形式进行取反操作即0变为11变为0。 ~ 按位取反 a1001 ~a0110按位与 a1001 b0011 ab0001 | 按位或 a1001 b0101 a|b1101 ^ 按位异或 a1001 b0101 a^b1100 7、移位运算符 在Verilog中有两种移位运算符 (左移位运算符) 和 (右移位运算符)。其使用方法如下an或ana是操作数n表示移动几位这两种移位运算都用0填补移出的空位。 reg [5:0] ac;reg [7:0] b;a 6b101001;b a2; 此时b8b10100100c a2; 此时c6b1010 8、拼接运算符 位拼接运算符可以把两个或多个信号的某些位拼接起来进行运算操作或者把单个信号复制多份。其使用方法如下 wire [5:0] a, b; wire [1:0] c wire [4:0] d; wire [11:0] e; ​ assign a 6b101101; assign b 6h111000 assign c 2h11 assign d {a[5],b[2:0],c}//即d 100011 assign e {2{b}}; //即e {b,b} 111000111000 ​ ​ wire aa, bb, cc, dd; assign {aa, bb, cc, dd} 4b1011; //即 aa 1bb 0cc 1dd 1 运算符优先级 三、常见问题和误区 1、位宽溢出问题 加法和乘法的计算结果需要扩展位宽如果定义的结果变量位宽未做扩展则计算结果将丢失最高位导致结果异常。 简单处理办法结果赋值的寄存器或wire的位宽引入进位即可。 module test (input clk,output reg [7:0] a,c,d,output reg [8:0] b ); ​ reg [7:0] d0 8d145, d1 8d128; ​ always (posedge clk) begina d0 d1;b d0 d1;c (d0 d1) 1;d (d0 d1 0) 1; end ​ endmodule 说明 a d0 d1表达式中最大位宽是8bit因此运算结果丢掉了进位得到17 b d0 d1整个表达式中最大位宽是9bit因此运算结果保留了进位得到273 c (d0 d1) 1 表达式中最大位宽只有8bit因此d0 d1的中间结果也是8bit丢掉进位后的17这样不能起到保留最高有效位的效果。 d (d0 d1 0) 1表达式中多了一个未声明位宽的常数0其默认位宽为32bit这样加法的中间结果便不会丢掉进位。 2、负数问题 表达式中如果有一个操作数是“负数”整个表达式的运算需要特别考虑其实处理起来也很简单。 1如果只涉及到加法和减法负数与表达式中最大操作数的位宽必须保持一致如下处理 reg [8:0] a -128; reg [9:0] b 512; reg [9:0] c; reg [10:0] d; ​ assign c {a[8], a} b; assign d {{2{a[8]}}, a} - {a[9], a}}; 2如果涉及乘法则将负数转换为绝对值与符号位。 reg [8:0] a -128; reg [9:0] b 512; reg [17:0] c_abs; reg [18:0] c; reg a_sign; reg [7:0] a_abs; ​ assign a_sign a[8]; assign a_abs a[8] ? (~a[7:0] 1b1) : a[7:0]; assign c_abs a_abs*b; assign c a_sign ? (~{1b0, c_abs} 1b1) : {1b0, c_abs}; 本文将不断定期更新中关注收藏不走丢哦 有任何问题都可以在评论区和我交流哦 本文由FPGA入门到精通原创公众号为“FPGA入门到精通”github开源代码“FPGA知识库” 您的支持是我持续创作的最大动力如果本文对您有帮助还请多多点赞、评论和收藏。
http://www.dnsts.com.cn/news/215602.html

相关文章:

  • 哪些网站做任务好赚钱的济南网站建设抖音平台
  • 天水 网站建设招聘做视频网站 服务器配置
  • 贵州省城乡住房和建设厅网站台州建设局网站信息价
  • 建立网站需要多长钱做盗版视频网站成本多少钱
  • 哪个网站做试卷吧有答案电邮注册网站
  • 电脑做视频的网站像美团这种网站怎么做的
  • wamp可以做视频网站吗网站建设 语言
  • 诸城网站建设多少钱建设自己的电影网站
  • 智能网站建设设计app系统制作开发
  • 建设一个普通网站需要多少钱企业展示网站 数据库设计
  • 衡阳市住房建设局网站做网站前途
  • 网站开发留言板代码响应式门户网站模板下载
  • 用别人代码搭建网站门户网站内容建设岗位职责
  • 成都装修网站制作多少钱海洋网站建设网络
  • 自适应网站建设特点网站发布和推广
  • 信用南京网站网站的ftp在哪里可以查到
  • 加强网站建设考察交流北京网站优化实战
  • 有什么有什么好的学做饮品的网站室内设计公司有哪些部门
  • 怎么做网站企业介绍高埗做网站
  • 南充建网站的资料网站如何做视频
  • 招聘网站的简历可以做几份松江网站关键词优化
  • 哪家公司做企业网站稳定优惠网站建设新模式
  • 做网站软件miscrosoft特色的网站建设
  • 东莞企业网站推广运营怎么更改网站首页图片
  • 网站快照优化怎么做招聘信息如何发布
  • 公司网站怎么规范管理的做公司网站排名
  • 线在科技成都网站推广公司网站程序0day
  • 网站系统怎么做的网络维护人员是做什么的
  • 网站服务器租用报价无锡设计公司有哪些
  • 网站建设完成后怎么上传服务器百度推广手机版