首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

奇偶校验器设计

奇偶校验器设计



程序很简单,但是可以引申到很多小的细节


Library IEEE;

Use IEEE.Std_logic_1164.All;


Entity Parity Is

    Port (

        A: In STD_LOGIC_VECTOR (8 Downto 0);

        B: Out STD_LOGIC

    );

End Parity;


Architecture Parity_arch Of Parity Is

Begin

Process(A)

Variable Even:std_logic;

  Begin

  Even:=''0'';

  For I In A''Range Loop

   If A(I)=''1'' Then

    Even:=Not Even;

    End If;

  End Loop;

  

  B<=Even;

End Process;





End Parity_arch;


在这里用到了LOOP语句,在VHDL里有3种循环方式

1oop...........2while   Condition  Loop........3for Identifier In Range Loop....

LOOP的形式实现一个无限循环,可以提供跳出循环的方法,但用处不大

第二种形式很有用,但退出循环的条件预先知道。1076。6RTL综合标准不支持While形式。

最后一种形式是最有用的,我们可以用这种形式循环处理长度为N向量的每一位

For  I   In  0  To N-1 Loop

也可以采用   For I In A''Range Loop这种形式A''Range记取A的向量长度-1

我们可以采用Synplify_pro综合一下,通过观察生成的RTL文件,我们可以了解LOOP语句生成的结构
返回列表