集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2700|回复: 0

galois_lfsr/伽罗瓦线性反馈移动寄存器

[复制链接]
1985yl 发表于 2014-4-7 00:25:47 | 显示全部楼层 |阅读模式

描述   

伽罗瓦线性反馈移动寄存器

该项目是用VHDL语音实现伽罗瓦线性反馈移位寄存器(LFSR),并且该项目可用于PRBS生成与同步、CRC计算、加扰和解扰、加密等项目中

。这种设计是非常通用的/参数化,在某种意义上说,它能够根据用户的输入(使用VHDL语言),智能化的“创造”(或生成)线性反馈移

位寄存器结构。在LFSR实体(伽罗瓦lfsr.vhdl)中,有一个通用的头文件,它允许我们为此线性反馈移位寄存器输入一个头文件地址的矢

量。

例如,要用多项式 x^8 + x^2 + x + 1来创建一个线性反馈移位寄存器, 你只需要指定一个头文件矢量(0,1,2,8),寄存器就会输出

0,1,2,8被锁定了。指定头文件向量与正确的头文件地址后, 只需将向量映射到线性反馈移位寄存器的实例中即可,如下所示:


        /* user.vhdl example file. */
        i_lfsr: entity work.lfsr(rtl) generic map(
                taps => (
                        /* Specify the tap vector here. */
                        0|1|2|8=>true,
                        7 downto 3=>false
                )
        )
        port map(...);
需要注意的是,该设计是通过与以前头文件中每一个异或门的输入连接,假定的最大头文件地址才被反馈到所有以前的头文件中。

我们可以使用Mentor Graphics Questa/ ModelSim进行仿真该设计,只需进入到测试平台,并从Unix提示符中执行simulate.sh即可:
$ ./simulate.sh

如果你已经安装了ModelSim/QuestaSim,运行脚本后,界面就会出现。

目前,我们只对Linux / Unix系统提供了模拟脚本。如果你在仿真时需要帮忙,请联系我们,我们会为你传送单独的指令。

如果你使用的是其他模拟器,让我们知道该软件是怎么工作的。该项目的目的是让这个核心尽可能的独立于供应商。

This design synthesises in Quartus.该设计实在Quartus中综合的。在接下来的几周里,我们会在硬件上对该核心进行核实。我们也计划

在塞琳思的FPGA开发板上核实该核心。敬请期待更新。

请注意,如果您在Quartus中设定的选项是VHDL-2008版本,将会造成Quartus不支持boolean_vector和integer_vector。所以,我们需要添

加这些定义进行合成。 你可以在一个单独的文件中找到这些定义(packages/pkg-types.vhdl):


        type boolean_vector is array(natural range <>) of boolean;
        type integer_vector is array(natural range <>) of integer;

VHDL-2008新增的一些功能是非常有用的,如果你的软件供应商还不支持这个,那么你要建议他们增加这些功能。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-23 18:52 , Processed in 0.056346 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表