奇偶校验
功能
识别错误,要求重传
方法
附加一个位,表明其信息满足某特定校验要求。
奇校验表示所发送的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;