数字电路基础知识——组合逻辑电路(奇偶校验电路、数据比较器的设计)

数字电路基础知识——组合逻辑电路(奇偶校验器、比较器的Verilog设计)

本次主要介绍组合逻辑电路中的奇偶校验电路以及比较器的设计,以及相干的实例来熟悉这两种电路。

一、奇偶校验电路
  1. 奇偶校验码
    奇偶校验码是比较简单的数据校验码,可以检测出一位错误,但是并不能确定错误的位置。
    如果数据中发生多位数据错误就可能检测不出来,更检测不到错误发生在哪一位;

  2. 实现方法
    将有效信息位和校验位读入,判断1 的个数为奇数还是偶数个,在奇校验时,正常的情况下个数应该为奇数个偶校验正常情况下应该时偶数个
    校验码的生成:对于奇校验,判断有效信息的位1的个数,若为偶数,则校验位为1,奇数则校验位为0;偶校验则相反。

  3. 用Verilog设计8bit奇偶校验电路。
    奇偶校验电路,一般多用于UART中接受数据位的校验等。
    通信中发送一个字节的数据,8位,加上一个校验位,一共九位。
    如果是奇校验,8位中1的个数加上,校验位为1的情况,最终1的个数为奇数个。
    如果是偶校验,8位中1的个数加上,校验位为1的情况,最终1的个数为偶数个。

module Odd_Even_Check(
    input   [7:0]   indata,
    output          odd_bit,
    output          even_bit
    );

assign  even_bit   = ^indata;   //偶校验位是所有数据为按位异或得到
assign  odd_bit    = ~even_bit; 

endmodule
//assign even_bit = ^a;
//等效于 assign even_bit = a[0]^a[1]^a[2]^a[3]^a[4]^a[5]^a[6]^a[7];

实现奇偶检验的算法就是,如果是偶校验,只要将该8位数据第一位和第二位进行异或,然后将得到的结果和第三位异或,依次下去,直到和第七位异或,
这样得到的最后结果,就是偶校验位;如果是奇校验,将上面的偶校验位取反即可。

二、数据比较器
  1. 一位数值比较器
    当A>B,则Y= AB’ = 1
    当A<B,则Y= A’B= 1
    当A=B,则Y= AB’ + A’B = 1
    下面即为一位数值比较器的电路:
    在这里插入图片描述
  2. 多位数值比较器
    多位数据进行比较时,必须从高位进行比较,并且高位相等时才能比较下一位。
    下图是74LS85逻辑框图。
    在这里插入图片描述
    在这里插入图片描述
    可以利用两个4位的比较器扩展成为8位的比较器。
    低四位没有来自更低的位的比较,所以将I(A=B)置1。
    低位的比较结果作为输出接到高位的输入。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摆渡沧桑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值