找回密码
 注册
关于网站域名变更的通知
查看: 385|回复: 1
打印 上一主题 下一主题

运算符/缩减运算

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-10-12 10:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
运算符/缩减运算
先来说一下关系运算符:
    关系运算符有以下四种:
1a<b      a 小于 b
2a>b      a 大于 b
3a<=b   a 小于或者等于 b
4a>=b   a 大于或者等于 b
在进行关系运算时,如果申明的关系是假的( false,则返回值是 0,如果申明的关系是真的( true,则返回值是 1,如果某个操作数的值不定,则关系是模糊的,返回值是不定值。
    所有的关系运算符都有着相同的优先级别。关系运算符的优先级别低于算数运算符的优先级别。
详细请查看夏老师的Verilog语法书,这里不做描述
   
       缩减运算符是单目运算符,也有与或非运算。其与或非运算规则类似于位运算符的与或非运算规则,但其运算过程不同。位运算是对操作数的相应位进行与或非运算,操作数是几位数则运算结果也是几位数。而缩减运算则不同, 缩减运算是对单个操作数进行与或非递推运算,最后的运算结果是一位的二进制数。夏老师的书里是这样说的:缩减运算的具体运算过程是这样的:第一步先将操作数的第一位与第二位进行与或非运算,第二步将运算结果与第三位进行与或非运算,依次类推,直到最后一位。
    例如:
reg[3:0]B;
reg C;
C=&B;
//等价于:
//C=((B[0]&B[1])&B[2])&B[3];
下面看一下例程:
module suojian(rst_n,clk,c);
        input clk;
        input rst_n;
       
        output reg c;
       
        reg [3:0]b;//
       
        always @(posedge clk or negedge rst_n)
        if(!rst_n)begin
                c <= 0;
                b <= 4'b1111;
        end
        else
                c <= & b;               
endmodule
tb文件:
`timescale 1ns/1ns
`define clk_period 20
module suojian_tb;
        reg clk;
        reg rst_n;
       
        wire c;
       
        initial clk = 1;
        always #(`clk_period/2)clk = ~clk;
       
        initial begin
                clk = 0;
                rst_n = 0;
                #(`clk_period*5)
                rst_n = 1;
        end
       
        suojian suojian(.rst_n(rst_n),.clk(clk),.c(c));
       
endmodule
       
波形:
通过波形我们可以看到,rst_n=1,由于b的四个位全部为1 ,:逻辑与"运算后,C的值在下一个时钟沿上升的时候输出C值为高电平
我们更改一下代码,B的值改为B= 4'b0111后再看一下波形图
可以看到,变量b中有0,逻辑与后 C值一直为0
备注:
Augus仿真的时候大意了,结果出现一个很简单的错误:
** Error: (vsim-3037) E:/Yuzhe_FPGA_prj/Blog_pro/suojianyunsuan/suojian_tb.v(21): Missing instance name in instantiation of 'suojian'.
原因是没有例化名,写程序时一定要注意这种小错误,每次编译仿真一次时间都很长,虽然这个程序时间很短,但是要是大工程少了一个例化名而出错,是不是很遗憾
suojian suojian(.rst_n(rst_n),.clk(clk),.c(c));
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-23 12:11 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表