常见的关系运算符(位拼运算符)

写在前面的话

位拼运算符是将多个小的表达式合并形成一个大的表达式,用符号{}来实现多个表达式的连接运算,各个表达式之间用“,”隔开。位拼运算符是梦翼师兄特别喜欢的一种运算符,它聪慧灵秀,不但可以进行简单的数据拼接,更是可以用来执行移位操作,而且数据永远是循环的,不会丢失,用途非常广泛。

代码实例


/****************************************************

*   Engineer        :   梦翼师兄

*   QQ               :   761664056

*   The module function:位拼接运算符模块

*****************************************************/

01  module shift(clk,rst_n,led_out);

02  input clk;//系统输入

03  input rst_n;//系统复位

04

05  output reg [3:0]led_out;//led驱动端口

06

07  always@(posedge clk or negedge rst_n)

08      begin

09          if(!rst_n)

10              begin

11                  led_out<=4‘b0111;//让其中一盏灯点亮

12              end

13          else

14              begin

15                  led_out<={led_out[0],led_out[3:1]};//实现流水灯

16              end

17      end

18  endmodule

编写测试代码如下


/****************************************************

*   Engineer        :   梦翼师兄

*   QQ               :   761664056

*   The module function:位拼接运算符测试模块

*****************************************************/

01  `timescale 1ns/1ps

02  module tb;

03  reg clk;

04  reg rst_n;

05

06  wire [3:0]led_out;

07

08  initial

09      begin

10          clk=0;

11          rst_n=0;

12          # 1000.1 rst_n=1;

13      end

14

15  always #10 clk=~clk;

16

17  shift shift(

18      .clk(clk),

19      .rst_n(rst_n),

20      .led_out(led_out)

21   );

22  endmodule

查看仿真波形如下:

从仿真图可以看出,每个时钟周期,0都会向右移动一位。到最右边时就会放返回最左边继续循环,使用拼位的运算符,在很多场合-如串并转换等,会使代码编写变得简单。

代码的意思是,每次把最低位放到最高位,让前三位放到后面,这样逻辑就实现了移位,形成了循环。

原文地址:https://www.cnblogs.com/mengyi1989/p/11515975.html

时间: 2024-11-02 14:37:23

常见的关系运算符(位拼运算符)的相关文章

位移位运算符

  位移位运算符 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算.位移位运算符分为左移和右移两种,均为双目运算符.第一运算对象是移位对象,第二个运算对象是所移的二进制位数. 移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关.如果是左移,则规定补入的数全部是0:如果是右移,还与被移位的数据是否带符号有关.若是不带符号数,则补入的数全部为0:若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位).具体移位规则如下所示. 位移位运算符的优先级如

常见的关系运算符(if else和case语句)

写在前面的话 说起关系运算符,真的是满心伤痕,这里有一个优先级的问题:关系运算符的优先级别低于算数运算符的优先级别. 关系运算符种类 (1) a<b     a小于b (2) a>b     a大于b (3) a<=b    a小于或者等于b (4) a>=b    a大于或者等于b 关系运算符使用意义 在进行关系运算时,如果申明的关系是假的(false),则返回值是0,如果申明的关系是真的(true),则返回值是1,如果某个操作数的值不定,则关系是模糊的,返回值是不定值. 关系运

shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符

shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样. 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边. #!/bin/basha=10b=20rst=`expr 2 + 2`echo '2+2 =' ${rst} rst=`exp

javascript运算符——位运算符

× 目录 [1]二进制 [2]非 [3]与[4]或[5]异或[6]左移[7]右移[8]>>>[9]应用 前面的话 位运算符是非常底层的运算,由于其很不直观,所以并不常用.但是,其速度极快,且合理使用能达到很好的效果.本文将介绍javascript中常常被忽视的运算符——位运算符 二进制表示 ECMAScript中的所有数值都以IEEE-754 64位格式存储,但位操作符并不直接操作64位的值,而是以32位带符号的整数进行运算的,并且返回值也是一个32位带符号的整数 这种位数转换使得在对特

【Shell脚本学习10】Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等

Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. 例如,两个数相加: #!/bin/bash val=`expr 2 + 2` echo "Total value : $val" 运行脚本输出: Total value : 4 两点注意: 表达式和运算符之间要有空格,

shell之算数运算符、逻辑运算符、关系运算符、布尔运算符、文件测试运算符

注意事项: (1)bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用: (2)完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边. (3)条件表达式要放在方括号之间,变量与符号之间必须以空格隔开,命令才可以识别: (4)乘号(*)在shell中有特殊含义,作为乘法符号时,要在*前边必须加反斜杠(\)才能实现乘法运算: (5)关系运算符采用的是英文字母的缩写,等于(-eq,equal),不等于(-ne,not equ

两个常见位操作面试题 不用加减乘除运算符计算两数之和及a b 3

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net <两个常见位操作面试题不用加减乘除运算符计算两数之和及a=b*3> 地址:http://blog.csdn.net/morewindows/article/details/8710737转载请标明出处,谢谢. 欢迎关注微博:http://weibo.com/MoreWindows 上一篇<位操作基础篇之位操作全面总结>

Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等

Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. 原生的bash到底支持不支持数学计算我不清楚了,不过也这样做到一样的效果: #!/bin/bash val=$(( 2 + 2)) echo 'Total value :'$val val=$[ 2 + 2 ] echo 'Total value :'$val 我想现在版本的bash原生是支

PHP中的运算符---位运算符、递增递减运算符、三元运算符、字符串运算符、数组运算符、类型运算符、错误控制运算符

1.位运算符 位运算符用来对整型数的指定位进行置位,如果被操作数是字符串,则对该字符串的ASCII码值进行操作. 运算类型 运算符 举例 结果 按位与 & $a & $b 将$a 与 $b 中均为1的位置为1,其余置为0 按位或 | $a | $b 将$a 中为1 或$b中为1的位置为1,其余置为0 按位异或 ^ $a ^ $b 将$a 与 $b 中不同的位置为1,其余置为0 按位非 ~ ~ $a 将 $a 中为1的位置为0,为0的位置为1 左移 << $a <<