第七讲 verilog运算符
+—可以
乘除不建议用×/ 因为在硬件电路里边有我们的可调用 ip核 实际使用手动来调用ip核来实现乘除法才是最优的。
求模运算%也是不建议在代码中大量的用 因为它会占用我们的逻辑资源
想得到一个0~9的随机数 如何实现:{$random}%10
,为什么等于0到9?其实质为求模运算取余数 random返回的是一个32位的随机数 经过模运算之后 就得到了模10是余数 也就是0到9
fpga里求模运算用的很少
关系运算符
(<, >, >=, <=, ==, !=)
错误代码
if(5<a<9) b<=1; else b<=0;
因为当a=2时,5<a为假(0) a<9的为真(1)
所以此时b=1; 同理可知无论a取何值 b都等于1;相当于逻辑或 ||
我们真正想表达5<a同时a<9
正确代码
if(5<a&&a<9) &&逻辑运算符 b<=1; else b<=0;
逻辑运算符(&& || !)运算的结果只有真(1)或假(0)
assign c = ! a; 只有当 a=0时结果才为真 当a=2 or3 or... 其结果都为0;
位运算符(& | ~)按照运行数据的位来运算的
按位取反就是把每一位都取反
条件运算符
assign a=(b>6) ? 1'b1 : 1'b0 ;
assign a=(b>6) ? 1'b1 : (b<5) ? 1'b1 : 1'b0 ; 可以套多个
移位运算符(<<左移运算符 >>右移运算符)
每次右移一位,数据高位补0, 每左移一位 数据低位补0
位拼接运算符{} 可将不同位的数据拼接在一起
c <={ a[1] , b[1:0] , b[3] , b[1]};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)