奇偶校驗
功能
識別錯誤,要求重傳
方法
附加一個位,表明其信息滿足某特定校驗要求。
奇校驗表示所發送的N+1位有奇數個1;
偶校驗表示所發送的N+1位有偶數個1;
例如
給定“0101”,首先附加一位。
如果是奇校驗,那么該位的數字為“1”
如果是偶校驗,那么該位的數字為“0”
8位奇偶校驗的VHDL程序:
library ieee; use ieee.std_logic_1164.all; entity parity8 is port ( ain : in std_logic_vector(7 downto 0); pin : in std_logic; -- odd = '1' , even = '0' pout : out std_logic ); end parity8 ; architecture behave of parity8 is signal s10 : std_logic ; signal s23 : std_logic ; signal s45 : std_logic ; signal s67 : std_logic ; signal slw : std_logic ; signal shg : std_logic ; signal s : std_logic ; begin s10 <= ain(0) xor ain(1) ; s23 <= ain(2) xor ain(3) ; s45 <= ain(4) xor ain(5) ; s67 <= ain(6) xor ain(7) ; slw <= ain10 xor ain23 ; shg <= ain45 xor ain67 ; s <= slw xor shg ; pout <= s xor pin; end behave
加法器/減法器
需求:
兩個8位輸入端口
EAS 位控制位
EAS = 1 , Adder
EAS = 0 , Substractor
一個8位輸入
使用的關鍵包
Package:
std_logic_signed
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_signed.all ; entity cas8 is port ( a : in std_logic_vector(7 downto 0); b : in std_logic_vector(7 downto 0); eas: in std_logic ; c : out std_logic_vector(7 downto 0)); end cas8; architecture behave of cas8 is begin c <= a + b when eas = '1' else a - b ; end behave;