Verilog HDL——移位运算符_verilog左移运算符-程序员宅基地

技术标签: 硬件工程  多年前的未整理  

概述

在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


例子

从上面的例子可以看出,start在移过两位以后,用0来填补空出的位。进行移位运算时应注意移位前后变量的位数,下面举例说明。
4’b1001<<1 = 5’b10010; //左移1位后用0填补低位
4’b1001<<2 = 6’b100100; //左移2位后用00填补低位
1<<6 = 32’b1000000; //左移6位后用000000填补低位
4’b1001>>1 = 4’b0100; //右移1位后,低1位丢失,高1位用0填补
4’b1001>>4 = 4’b0000; //右移4位后,低4位丢失,高4位用0填补


经验

always @ (CNTVAL_1)
begin
 CNTVAL_1_shift <= CNTVAL_1 << 1 ;
 CNTVAL_1_3to4 <= CNTVAL_1_shift >> 1 ;
 //CNTVAL_1 shift
 	 // 000-0000 001-0010 010-0100 011-0110                       /    // 100-1000 101-1010 110-1100 111-1110
 //CNTVAL_1 shift right 
    // 0000-0000 0010-0001 0100-0010 0110-0011                 /   // 1000-0100 1010-0101 1100-0110 1110-0111                
end 

上述代码将CNTVAL_1先左移,再右移,实现在3bit字长的二进制前添加了一个0,将其扩展为4位。中间的变化过程在注释中可见。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/proton_boke/article/details/60597453

智能推荐

Ubuntu创建sudo用户-程序员宅基地

文章浏览阅读2.3k次。主页关于我Ubuntu创建sudo用户sudo命令提供了临时使用root权限的机制,使普通用户可以执行超级管理员任务。我要在Ubuntu系统上创建一个新用户,并且有执行sudo命令的权限。我不直接修改sudoers文件。首先创建一个新用户如果你使用已存在的用户,可以跳过这一步。只有root用户有权限添加新用户:# adduser username把usern..._ubuntu创建sudo用户

oracle 日志 active,日志最常见的状态有以下几种:CURRENT , ACTIVE , INACTIVE ,UNUSED...-程序员宅基地

文章浏览阅读862次。Active (Current) and Inactive Redo Log FilesOracle Database uses only one redo log files at atime to store redo records written from the redo log buffer. Theredo log file that LGWR is actively writing..._oracle active inactive

MVC控制器传递多个Model到视图,使用ViewData, ViewBag, 部分视图, TempData, ViewModel, Tuple...-程序员宅基地

文章浏览阅读501次。从控制器传递多个Model到视图,可以通过ViewData, ViewBag, PartialView, TempData, ViewModel,Tuple等,本篇逐一体验。本篇源码在github。 在视图页面,下拉框选择课程触发事件,分别显示老师课程表、学生上课表,如图: 相关的Model: public class Course {..._"viewdata[\"eemployee\"] = ds2.tables[0]; return view();"

Mybatis的if标签判断空字符串 == 0_mybatis判断空字符串-程序员宅基地

文章浏览阅读4w次,点赞18次,收藏36次。主要内容转自:https://www.jianshu.com/p/732839a2f532从我们的认知上来说,一个 空字符串 和 一个数字0 是不可能相等的.所以我第一反应是,他是不是用法不对?或者是他的业务代码其他地方干扰到了? 于是我决定写了个最简单的demo来进行测试.如下然后输出结果如下:惊奇的发现,这个if标签果然把空字符串和数字0判断成了相等.这里我并不..._mybatis判断空字符串

switch语句与for循环_for(i=1 i<4 i++)switch-程序员宅基地

文章浏览阅读2.5k次。分支结构if( boolean表达式 )else{ }switch 执行流程,switch的值和case的值一一比较,如果一致,则执行case里面的代码,如果全都不一致执行defalut里面的代码, 如果一旦有一次匹配成功,之后就不匹配了,直到遇到break,或者}才结束 退出switch有两种方法,一种是break;,到大括号自动停止 只支持byte,short,in_for(i=1 i<4 i++)switch

Pandas.merge()的基本用法_df.merge()-程序员宅基地

文章浏览阅读2.2k次。Pandas.merge()的基本用法pandas.merge(left,right,how=‘inner’,on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,suffixes=(’_x’, ‘_y’), copy=True,indicator=False,validate=None)l_df.merge(r_df,how=‘inner’,on_df.merge()

随便推点

WebFlux和Spring Data Reactive的完整demo_webflux demo-程序员宅基地

文章浏览阅读6.4k次。文章目录设置ReactiveRedisTemplate配置ReactiveRedisTemplateWebFlux处理流实例依赖的spring版本为:spring-webflux(5.1.2)、spring-data-redis(2.1.2)、spring-data-mongodb(2.1.2)。设置ReactiveRedisTemplate使用的是非springboot项目也支持的配置方式..._webflux demo

聊天室入门实战(node,sockte.io实现)--第三章(在线成员列表及头像显示,单聊)_聊天室管理系统聊天室用户头像显示-程序员宅基地

文章浏览阅读1.5k次。node.js,express,socket.io,jquery,bootstrap入门实战,聊天室,实现群聊,单聊,图片发送,登录检测等功能。_聊天室管理系统聊天室用户头像显示

java面试题丢手帕问题 代码详解_java 丢手绢-程序员宅基地

文章浏览阅读1.4k次。1、约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”.) 2、约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。 3、下面通过java代..._java 丢手绢

泛域名解析怎么做php,nginx如何做泛域名解析-程序员宅基地

文章浏览阅读94次。@wuYin我现在把nginx配置改成了server {listen 80;root /www/web/novel/public_html;server_name ~^(?.+).m.myname.com;index index.html index.php index.htm;error_page 400 /errpage/400.html;error_page 403 /er..._php 泛解析 nginx 实现动态域名

JDBC&DataSoure配置文件_java jdbcdatasource 文件-程序员宅基地

文章浏览阅读197次。jdbc.propertiesurl=jdbc:mysql://localhost:3306/db4?serverTimezone=Asia/Shanghaiuser=rootpassword=0000driver=com.mysql.cj.jdbc.Driver工具类import java.io.FileReader;import java.io.IOException;import java.net.URL;import java.sql.*;import java.uti_java jdbcdatasource 文件

TensorFlow学习笔记之TensorBoard_optimizer, merged, loss], feed_dict=feed_dict, opt-程序员宅基地

文章浏览阅读1.7k次。TensorFlow自带的一个强大的可视化工具,在Win7 64位Anaconda安装Python 3.6.1采用pip install tensorflow-gpu==1.4.0(版本可变,如1.7.0(upgrade),或1.2.1(degrade)等)安装TensorFlow时自带的TensorBoard,具体页面示例如下所示:在上图中,GRAPHS选项用于显示网络架构,IMAG_optimizer, merged, loss], feed_dict=feed_dict, options=run_options, run_meta

推荐文章

热门文章

相关标签