原创 FPGA自己产生reset

2010-5-14 22:38 5280 14 26 分类: FPGA/CPLD

遇到一个FPGA没有外部的reset,只能自己产生了,这么简单一个问题居然想了很久才实现。在modelsim仿真是对的,还没有实际操作,也希望和大家讨论一下


module reset_generation(inclk,reset);
input inclk;
output reset;
reg flag,reset;
reg [1:0] counter;


always @ (posedge inclk)
begin
  case(flag) 
  1'b0: begin
        counter<=counter+1;
        if(counter==2'b11)
          begin
            flag<=1;
          end
        end
  1'b1: reset<=1;
  default:begin
          reset<=0;
          flag<=0;
          counter<=2'b00;
          end
  endcase  
end


endmodule


使用这样的代码,通过编译信息会发现,reset会被quartus直接赋1


其实最重要的是reset没有赋0,如果在1状态加上一句reset0, 会发现reset没有直接赋1了。


这么简单的问题!


 
PARTNER CONTENT

文章评论12条评论)

登录后参与讨论

用户1359586 2008-8-20 20:24

xyysun ,请问你有什么好方法吗?大家讨论一下

用户1359586 2008-8-20 20:24

shaojihu ,你说的对,在FPGA里面默认的寄存器初始值是0

sjihu512_444883468 2008-8-16 13:11

感觉 楼主的程序写的有点复杂了,如果只是想简单的产生一个高低复位信号只要这样写就可以了 我觉得这样的复位信号好像过于简单了吧

sjihu512_444883468 2008-8-16 13:10

感觉 楼主的程序写的有点复杂了,如果只是想简单的产生一个高低复位信号只要这样写就可以了 always@(posedge inclk) begin if(counter<4) begin counter<=counter+1; reset<=0; end if(counter=4) begin reset<=1; counter<=4; end end 我觉得这样的复位信号好像过于简单了吧

sjihu512_444883468 2008-8-16 13:09

感觉 楼主的程序写的有点复杂了,如果只是想简单的产生一个高低复位信号只要这样写就可以了 always@(posedge inclk) begin if(counter<4) begin counter<=counter+1; reset<=0; end if(counter=4) begin reset<=1; counter<=4; end end 我觉得这样的复位信号好像过于简单了吧

用户1256314 2008-8-16 10:51

这个方法是可以用,不过不是通用的方法,受到FPGA芯片型号和所在平台工作情况的影响。总之是不够健壮的方法。建议少用

用户1404699 2008-8-15 15:39

运行过了 很明显不行 在4 个时钟周期之后 reset便一直为1;除非你想一直复位吧 再说复位是在某种情况或者某个时间段需要复位时才用到的。

用户1401845 2008-8-12 09:39

好像不行,综合后,reset为1,而flag和counter被剪切掉了。

用户1359586 2008-7-17 21:57

今天下载到FPGA执行了一下实际结果也是对的

用户1359586 2008-7-17 11:20

是这样的,原理图上就没有FPGA的reset输入,所以在FPGA内部实现一个reset作为其他module的输入。
相关推荐阅读
用户1359586 2011-07-07 11:49
一个简单字符驱动
网上常见的一个linux字符驱动,见 http://www.dzsc.com/data/html/2009-5-31/76528.html insmod test.ko lsmod      就可...
用户1359586 2010-05-10 22:27
SRAM的时序约束
http://blog.ednchina.com/ilove314/198969/message.aspx#85821  读SRAM时序约束分析分析了SRAM的IO计算,但是没有讲如何具体的计算和Ti...
用户1359586 2010-04-07 21:09
CCS6000安装问题
http://bbs.21ic.com/icview-39374-1-1.html在安装CCS6000的时候,运行ccs6000.exe的时候,碰到好几机子都装不上。主要问题是在安装到“compone...
用户1359586 2010-01-13 21:15
matlab 函数:sprintf
for i="1:20"     j="sprintf"('%03d',i)endj =001j =002j =003j =004j =005j =006j =007j =008j =009j =01...
用户1359586 2009-09-29 09:54
有着十三亿人众的孔孟之乡没有一个教育家
   耶鲁大学校长 小贝诺.施密德特  曾任耶鲁大学校长的小贝诺?施密德特,日前在耶鲁大学学报上公开撰文批判中国大学,引起了美国教育界人士对中国大学的激烈争论。 对中国大学近年来久盛不衰的“做大做强”...
EE直播间
更多
我要评论
12
14
关闭 站长推荐上一条 /3 下一条