题解 | #奇偶校验#

奇偶校验

https://www.nowcoder.com/practice/67d4dd382bb44c559a1d0a023857a7a6

奇偶校验的学习记录

简单理解就是,奇校验就是数据中1的个数是加上奇偶校验位位1,一共奇数个1;此时判断奇偶校验结果为正确;

如数据是10101010共8位有4个1,加上奇校验位是1,一共奇数个1,此时奇偶校验判断结果输出为0,即奇偶校验输出没问题。

偶校验一样。

`timescale 1ns/1ns
module odd_sel(
input [31:0] bus,
input sel,
output check
);
reg check;
//*************code***********//
    wire reg_check;
    assign reg_check = ^bus;
 //   assign check = sel?reg_check:~reg_check;
    always@(*) begin
        if (sel==1'b1) 
            check = reg_check;
        else
            check = ~reg_check;
    end
//*************code***********//
endmodule

知识点:

  • 判断数据中有奇数个1还是偶数个1,用异或。如进入的数据data_in=8'b0101_0101;

r_check = ^data_in = data_in[7]^data_in[6]^data_in[5]^data_in[4]^data_in[3]^data_in[2]^data_in[1]^data_in[0]

结果为1,则有奇数个1;

结果为0,则有偶数个1;

  • 判断数据中是否有1,用与逻辑;

有1,相与后结果为1;否则为0

  • 判断数据中是否有0,用或逻辑;

有0,相与后结果为0;否则为1

#刷题#
全部评论

相关推荐

06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务