奇偶校驗電路、數據比較器


https://blog.csdn.net/vivid117/article/details/100653875

1.奇偶校驗電路

奇偶校驗碼
奇偶校驗碼是比較簡單的數據校驗碼,可以檢測出一位錯誤,但是並不能確定錯誤的位置。
如果數據中發生多位數據錯誤就可能檢測不出來,更檢測不到錯誤發生在哪一位;

實現方法
將有效信息位和校驗位讀入,判斷1 的個數為奇數還是偶數個,在奇校驗時,正常的情況下個數應該為奇數個,偶校驗正常情況下應該時偶數個。
校驗碼的生成:對於奇校驗,判斷有效信息的位1的個數,若為偶數,則校驗位為1,奇數則校驗位為0;偶校驗則相反。

用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

實現奇偶檢驗的算法就是,如果是偶校驗,只要將該8位數據第一位和第二位進行異或,然后將得到的結果和第三位異或,依次下去,直到和第七位異或,
這樣得到的最后結果,就是偶校驗位;如果是奇校驗,將上面的偶校驗位取反即可。

2.數據比較器

一位數值比較器
當A>B,則Y= AB’ = 1
當A<B,則Y= A’B= 1
當A=B,則Y= AB’ + A’B = 1
下面即為一位數值比較器的電路:

多位數值比較器
多位數據進行比較時,必須從高位進行比較,並且高位相等時才能比較下一位。
下圖是74LS85邏輯框圖。

————————————————
版權聲明:本文為CSDN博主「擺渡滄桑」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/vivid117/article/details/100653875


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM