题解 | 奇偶校验

`timescale 1ns/1ns
module odd_sel(
input [31:0] bus,
input sel,
output check
);
//*************code***********//
 reg check_odd;
   reg check_even;
     
   always@(*) begin
      check_odd <= ^bus; check_even <= ~(^bus);
   end
 
   assign check = (sel)? check_odd:check_even;
 
//*************code***********//
endmodule

Verilog 中,在变量的前面加 "^" 表示对一个的数据所有 bit 进行异或运算,如果变量包含 '1' 的个数为奇数,则异或的结果为 '1'

奇偶校验其实就是数一个变量所有 bit '1' 的个数,奇校验表示奇数个 '1' 时输出高电平,偶校验表示偶数个 '1' 时输出高电平。

全部评论

相关推荐

2024-12-16 19:50
已编辑
香港中文大学 前台
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务