返回信息流SIGNAL T:STD_LOGIC;
SIGNAL PRBS:STD_LOGIC;
SIGNAL PRREG:STD_LOGIC_VECTOR(LENGTH DOWNTO 0);
process(T,STOP) --产生一个伪随机信号
begin
if STOP='1' then
prreg<=(others=>'0');
prreg(0)<='1';
elsif T'event and T='1' then
prreg<=(prreg((length-1)downto 0)&
(prreg(tap1)xor prreg(tap2)));
end if;
end process;
prbs<=prreg(length);
CAT<="011111"; --让第一个7段数码管显示歌曲序号
u1: NoteTabs PORT MAP(clk=>T,MODE=>MODE,SHOW=>SHOW, ToneIndex => ToneIndex,
RANDOM=>PRBS,SEG=>SEG,PP=>PP,NEXTONE=>NEXTONE,LASTONE=>LASTONE,PREVIOUS=>PREVIOUS);
u2: ToneTaba PORT MAP(Index=>ToneIndex, Tone=>Tone,CAIDENG=>CAIDENG);
u3: Speakera PORT MAP(clk=>CLK1MHZ,Tone=>Tone ,SpkS=>SPKOUT);
END;
大神看见一定要帮我啊,纠结中。。。
这是一条镜像帖。来源:北邮人论坛 / circuit / #18516同步于 2011/10/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖
vhdl伪随机代码求教
cm2b
2011/10/2镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
哦哦,就是prreg<=(prreg((length-1)downto 0)&
(prreg(tap1)xor prreg(tap2)));
end if;
end process;
prbs<=prreg(length);
这个什么意思啊
prbs<=prreg(length); --prereg中的最高位作为输出,即伪随机序列
prreg<=(prreg((length-1)downto 0)&(prreg(tap1)xor prreg(tap2)));
--prereg中的第tap1+1位和第tap2+1位模2加作为寄存器的输入(最低位),整个寄存器向最高位移位