(1)>>>(算术右移)与>>(逻辑右移)的区别:

逻辑右移就是不考虑符号位,右移一位,左边补零即可。
算术右移需要考虑符号位,右移一位,若符号位为1,就在左边补1,;否则,就补0。
所以算术右移也可以进行有符号位的除法,右移,n位就等于除2的n次方。

例如,8位二进制数11001101分别右移一位。
逻辑右移就是[0]1100110
算术右移就是[1]1100110

(2)<<:(左移位运算符) >>:(右移位运算符)

在Verilog HDL中有两种移位运算符。

<<:(左移位运算符) >>:(右移位运算符)

其使用方法如下:
a >> n;
a << n;
a代表要进行移位的操作数,n代表要移几位。这两种移位运算都用0来填补移出的空位。下面举例说明:
module shift;
reg [3:0] start, result;
initial begin
start = 1; //start在初始时刻设为值0001
result = (start<<2); //移位后,start的值0100,然后赋给result
end
endmodule
--------------------- 
作者:proton_boke 
原文:https://blog.csdn.net/proton_boke/article/details/60597453

(3)实现循环移位

//实现循环右移
reg [7:0] shifter;
always(posedge clk )
begin
shifter<={shifter[0],shifter[7:1]};
end

//解释:每一次都是把原来的最低位,往最高位搬移一次。
//实现循环左移
reg [7:0] shifter;
always(posedge clk)
begin
shifter<={shifter[6:0],shifter[7]};
end

//每一次都是把原来的最高位,往最低位搬移一次
--------------------- 
作者:ciscomonkey 
原文:https://blog.csdn.net/ciscomonkey/article/details/83660563

(4)

算​术左移和逻辑左移一样都是右边补0:

比如 00101011​

算术左移一位:01010110

逻辑左移一位​:01010110

对于二进制的数值来说左移n位等于原来的数值乘以2的n次方

比如00011010十进制是26,左移两位后是011010​00转成十进制是104恰好是26的4倍。

ps:这种倍数关系只适用于左移后被舍弃的高位不含1的情况,否则会溢出。​


逻辑右移很简单,只要将二进制数整体右移,左边补0即可

如10101101逻辑右移一位为01010110

算术右移符号位要一起移动,并且在左边补上符号位,也就是如果符号位是1就补1符号位是0就补0

比如:11100算术右移一位为11110(符号位1跟着一起移动并且左边补了1)

对于二进制的数值来说右移n位等于原来的数值除以2的n次方

比如10110100十进制是76(需要先将这个补码转换成原码之后再转换成十进制),右移两位后是11101101转成十进制是19恰好是76的4倍。

​ps:这种倍数关系只适用于右移后被舍弃的低位不含1的情况,否则每舍一次1则代表余数被舍去,保留整数部分。
--------------------- 
作者:狐非 
原文:https://blog.csdn.net/yddj5/article/details/52822366

Verilog 中的移位(算术移位, 逻辑移位, 循环移位)相关推荐

  1. [计算机组成原理]2-6、算数移位、逻辑移位、循环移位

    逻辑移位 看笔记一定要心静,慢慢来不急. 在移位运算中,考察最频繁的就是算术移位和逻辑移位,逻辑移位相对来说比较简单,我们先从它入手. 首先我们来看什么叫移位,移位就是移动位置,移动数据的位置,也就是 ...

  2. (计算机组成原理)第二章数据的表示和运算-第二节3:定点数的移位运算(算数移位、逻辑移位和循环移位)

    文章目录 一:算数移位 (1)原码的算数移位 (2)反码的算术移位 (3)补码的算数移位 二:逻辑移位 三:循环移位 定点数的移位运算根据操作对象的不同划分为算数移位和逻辑移位.有符号数的移位称为算数 ...

  3. Verilog学习之移位运算与乘法设计

    文章目录 前言 一.题目描述 二.实现思路 1.理解移位运算与状态机 1)移位运算 1>算数移位 2>逻辑移位 2)状态机 1>什么是状态机 2>状态机的类型 Moore 型状 ...

  4. verilog中的定点数、浮点数、定点小数、定点整数的表示及运算

    1.定点数: 顾名思义定点数就是小数位固定不变的数叫做定点数,也就是小数点是定在某个位置不变的数. 2.定点数的分类: (1)定点整数:定点整数的小数点后面没有其他的数值,即小数点定在了数的最后面 定 ...

  5. verilog中数组的定义_开源仿真工具Icarus Verilog中的verilog parser

    前面提到用flex和bison开处理命令行参数,回顾一下:开源仿真工具Icarus Verilog中的命令行参数处理方法. 那么Verilog的parser又是怎么实现的呢?简单地说,与做命令行参数的 ...

  6. FPGA的设计艺术(18)如何使用Verilog中的数组对存储器进行建模?

    前言 Verilog中的二维数组很有用,可以使用for以及generate for配合二维数组进行使用,可以代替大量寄存器的场合,其实大量同类寄存器可以使用存储器进行代替,Verilog中可以使用二维 ...

  7. Verilog初级教程(21)Verilog中的延迟控制语句

    文章目录 前言 正文 延迟控制语句 事件控制语句 Named Events Event or operator 往期回顾 参考资料及推荐关注 前言 Verilog中的延迟控制有两种类型–延迟和事件表达 ...

  8. Verilog初级教程(20)Verilog中的`ifdef 条件编译语句

    文章目录 前言 正文 语法 示例 Testbench文件 往期回顾 参考资料及推荐关注 前言 `ifdef条件编译语句在逻辑设计中还是很常见的,但也常见一些滥用的情况,这应该避免. 应该在什么情况下使 ...

  9. Verilog初级教程(15)Verilog中的阻塞与非阻塞语句

    文章目录 前言 正文 阻塞赋值 非阻塞赋值 往期回顾 参考资料以及推荐关注 前言 本文通过仿真的方式,形象的说明阻塞赋值以及非阻塞赋值的区别,希望和其他教程相辅相成,共同辅助理解. 正文 阻塞赋值 阻 ...

最新文章

  1. linux 内核 出错-HP 方案
  2. C#温故而知新学习系列之.NET框架高级特性—概述.NET框架中的反射(一)
  3. 进程间的通信方式(二):管道Pipe和命令管道FIFO
  4. linux中offsetof与container_of宏定义
  5. python获取时间周数_【手把手教你】Python量化策略风险指标
  6. 深度学习的150多篇文章和10多个专栏推荐
  7. as上的git到码云操作_如何使用git从码云克隆项目到本地?
  8. nssl1156-今天你AK了吗?【康托展开,高精度,二分答案,树状数组】
  9. Linux 基础知识系列第一篇
  10. 32个Python爬虫项目
  11. ui unity 图片高亮_Unity5 UI图片变灰处理(UGUI)(二)
  12. jsp框架html,GUI构建:[jsp风格的框架通常]对由模板生成的HTML代
  13. ACL'22 | 基于强化学习的实体对齐
  14. IOS学习之斯坦福大学IOS开发课程笔记(第六课)
  15. Ubuntu 16.10 下 使用 C/C++ IDE anjuta 编译出现You must have `libtool' installed
  16. uniapp点击打开外部应用跳转链接,指定App打开应用市场
  17. httpwatch9.1 安装包
  18. 华为荣耀8青春版计算机在哪里,华为荣耀8青春版有什么新功能
  19. aliyun cloud ide
  20. 当今app行业 比较流行的 简称 汇总

热门文章

  1. Redhat5.4 LAMP配置
  2. python搜索列表内_使用Python在另一个List中搜索列表的值
  3. php 调用vs2013 dll文件,VScode能编辑DLL库文件么
  4. java非静态块,在java中使用非静态块有什么用?
  5. thymeleaf 使用页面报错_异常处理-SpringBoot中thymeleaf对应前台页面大于号\小于号使用问题...
  6. python 遍历文件夹 提取文件内信息 存为新文件名_python获取遍历文件名称并分别保存为XLSX和CSV格式...
  7. seo说_百度指数看世间沉浮_如何快速排名-互点快速排名_网站关键词排名常见问题 - 搜狗快速排名...
  8. java 如何计算数据库_java – 如何在我的数据库中计算这些变量?
  9. Java设计模式(装饰者模式-组合模式-外观模式-享元模式)
  10. 培养未来工程人才的南科大实践 - 记录