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

求助:伪随机序列的产生?

求助:伪随机序列的产生?

用VHDL语言编写伪随机序列,即M序列,利用4级产生15位序列,需要随机产生的,谢谢了!
开心就好!!!!!!!!
我们希望您提出的问题是您在做这个题目时遇到的具体问题.您这样问的话就相当别人帮您做了.

大浪淘沙
留下的全是金子
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;

entity mxl is
port(clk:in std_logic;
qoutut std_logic);
end mxl;

architecture behav of mxl is
signal temp:std_logic_vector(0 to 4);
signal d: std_logic_vector(0 to 3);

begin
process(clk)
begin
if clk'event and clk='1'then
temp(1 to 4)<=d(0 to 3);
temp(0)<=temp(1) xor temp(4);
qout<=d(3);
d(0 to 3)<=temp(0 to 3);
if d="0000" then
d<="1010";
end if;
end if;
end process;
end behav;

开心就好!!!!!!!!
这个用波形仿真得出的结果有点问题,感觉不对,能帮我看一下哪里有问题吗?
谢谢!
开心就好!!!!!!!!
temp(1 to 4)<=d(0 to 3);

d(0 to 3)<=temp(0 to 3);
为什么这样做?
我自己想的,因为学这个也不久,不是很清楚,我直接利用移位循环,没有触发器,这样不对吗,那应该怎么做?
开心就好!!!!!!!!
建议你去参考一下开发工具中的例子,m序列发生器是个很典型的例子,大部分开发工具中都有,自己多思考有好处,参考一下对理清自己的思路也有好处
美梦成真-->噩梦降临!
--伪随机序列(m序列)
library ieee;
use ieee.std_logic_1164.all;

entity wsj is
port(clk:in std_logic;
qoutut std_logic);
end wsj;

architecture behav of wsj is
component ddf
port(d,clk:in std_logic;
qut std_logic);
end component;
signal tmp:std_logic_vector(0 to 4);
begin
--tmp(0)<=tmp(1) xor (not(tmp(4)or tmp(3) or tmp(2)));
tmp(0)<=not(tmp(1)xor tmp(4)); --防止进入全0循环后不能自启动,则反馈系数异或后再取反,避免全0信号。
g1:for i in 0 to 3 generate --把ddf看作已经生成的元件,然后
ddfx:ddf port map(tmp(i),clk,tmp(i+1)); --利用GENERATE来循环生成串行连接的4个D触发器。
end generate;
qout<=tmp(4);
end behav;
开心就好!!!!!!!!
这个程序产生的序列好像不太对,能帮我看看吗?
谢谢各位大虾了!
开心就好!!!!!!!!
vhdl不是太懂,建议你选个最短周期的生成多项式来实验,这样方便你和理论值对照,对短周期的对了,改变多项式没有理由不对的
美梦成真-->噩梦降临!
看别人程序是很头痛的事情,m序列就照生成多项式做就行了,抽头对的话,没理由输出不对.
请不要说"好像不对"这样的话,LZ需要学习学习提问的方法.
大家来讨论,本身就是提高自己的一条途径,希望大家多思考,多讨论,多发帖!
美梦成真-->噩梦降临!
本身就是不懂,当然问的问题也就没有水平了,也就请各位大虾见谅了。
开心就好!!!!!!!!
谁都有过程,没有水平的高低
美梦成真-->噩梦降临!
我做毕业设计的课题是不是
基于FPGA的组合m序列的设计及性能分析
有哪位朋友有这方面的经验,能否指点一下.
谢谢!QQ:33535042
fsvcvxzdfffffffffffff
返回列表