集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4910|回复: 14

VHDL新手求助!!!!!!!!!!!!!!!

[复制链接]
屰蓅順蓅 发表于 2011-6-30 20:39:43 | 显示全部楼层 |阅读模式
最近课程设计,让用VHDL遍一个程序,感觉压力很大,特来求救啊!!!!!!!!!!!1
题目要求:设计一个伪随机序列发生器,采用的生成多项式为1+X3+X7。要求具有一个RESET端和两个控制端来调整寄存器初值(程序中设定好四种非零初值可选)。
下面是我搞到的程序,但是就是运行不了,大神帮我看看有什么错误,是不是初始值没治好,最好有运行出来的4肿情况 的分析图quartus II 我们用这个仿真的
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity PRSG is
port (reset,clk:in std_logic;
sel:in std_logic_vector(1 downto 0);
doutut std_logic_vector(7 downto 0));
end PRSG;

architecture behavioral of PRSG is
signal ddout:std_logic_vector(7 downto 0);
signal temp:std_logic;
begin
process(sel)
begin
if reset='1' then
ddout<="00000000";
elsif clk'event and clk='1' then      
case sel is
when"00"=>ddout<="01010001";
when"01"=>ddout<="00110001";
when"10"=>ddout<="10001001";
when others=>ddout<="01111001";
end case;
temp<=ddout(0) xor ddout(3);
dout(0)<=ddout(1);
dout(1)<=ddout(2);
dout(2)<=ddout(3);
dout(3)<=ddout(4);
dout(4)<=ddout(5);
dout(5)<=ddout(6);
dout(6)<=ddout(7);
dout(7)<=ddout(7) xor temp;
end if;  
end process;
end behavioral;
 楼主| 屰蓅順蓅 发表于 2011-6-30 20:44:56 | 显示全部楼层
顶啊,没会的么
蓝余 发表于 2011-6-30 21:03:26 | 显示全部楼层
temp应该用变量吧,变量才是瞬间更新的。
temp<=ddout(0) xor ddout(3);
dout(0)<=ddout(1);
dout(1)<=ddout(2);
dout(2)<=ddout(3);
dout(3)<=ddout(4);
dout(4)<=ddout(5);
dout(5)<=ddout(6);
dout(6)<=ddout(7);
dout(7)<=ddout(7) xor temp;
 楼主| 屰蓅順蓅 发表于 2011-6-30 21:07:50 | 显示全部楼层
回复 3# 蓝余


    哥哥,不太懂啊,用变量?该怎么改,其他地方没什么逻辑错误啊,因为放上去后没有错误,有12个警告,还有我用SEL控制初始值的时候显示不出波形,悲剧,能帮我运行下看看了,大三了,这个语言没学过
蓝余 发表于 2011-6-30 21:17:32 | 显示全部楼层
你应该找本vhdl的书看看吧。
signal temp:std_logic; 改为 variable temp : std_logic;
进程里还要有敏感信号reset,clk 即为: process(reset,clk,sel)
蓝余 发表于 2011-6-30 21:18:25 | 显示全部楼层
变量赋值 用 := 不是《=
 楼主| 屰蓅順蓅 发表于 2011-6-30 21:19:14 | 显示全部楼层
回复 5# 蓝余


    太复杂了,我明天去试试,其实应该能出来的,但是不怎么知道就出不来!
 楼主| 屰蓅順蓅 发表于 2011-6-30 21:20:43 | 显示全部楼层
回复 6# 蓝余


    when"00"=>ddout<="01010001";
when"01"=>ddout<="00110001";
when"10"=>ddout<="10001001";
when others=>ddout<="01111001
是这部分要改成:=吗?
 楼主| 屰蓅順蓅 发表于 2011-6-30 21:25:05 | 显示全部楼层
回复 6# 蓝余


    知道了,前面改成变量后,后面赋值语句要变的是吧,这个输出确实是一直变化的,如果不设置时钟话,是不是定格了在某一瞬间了!
蓝余 发表于 2011-6-30 21:28:44 | 显示全部楼层
你确实要看一下书,把规则学一下,最基本的。看一天就会了
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2025-8-23 13:10 , Processed in 0.071081 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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