zoukankan      html  css  js  c++  java
  • 【FPGA】8位奇偶校验 / 加(减)法器 VHDL程序

    奇偶校验

    功能

    识别错误,要求重传

    方法

    附加一个位,表明其信息满足某特定校验要求。

      奇校验表示所发送的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;
  • 相关阅读:
    Java 二维数组
    JAVA——运算符
    JAVA——类与对象
    Eclipse无法自动编译出class文件 转
    引导入单用户模式
    安装sql server遇到问题解决方法
    数据结构和算法分析学习
    开源软件
    POP3、SMTP、IMAP和Exchange都是个什么玩意?
    邮件相关名词 MUA, MTA
  • 原文地址:https://www.cnblogs.com/Osea/p/13191877.html
Copyright © 2011-2022 走看看