赛灵思
直播中

李丽

8年用户 304经验值
私信 关注
[问答]

RESET怎么连接重置的位置

大家好,
我正在使用Spartan-3e入门套件实现我的设计。
有一个fifo,一个状态机和许多其他块。
所以,我不知道连接重置的位置。
对于小代码,要了解如何使用电路板,我将复位连接到按钮。
我已经阅读了wp272.pdf,建议不要重置,因为FPGA为我们做了。
这是正确的 ?
我确定所有ff都会在开机时重置吗?
通常,我可以在所有fpga项目中从我的vhdl代码中排除重置吗?
对不起,但我是fpga的新手,这是个问题.....

以上来自于谷歌翻译


以下为原文

Hi all,

I'm implementing my design on Spartan-3e starter kit. There is a fifo, a state machine and many other block.

So, I don't know where connect the reset.

For small code, to learn how to use the board I connected the reset to a button.

I've read the wp272.pdf where is suggested that no reset is needed because fpga do it for us.

It's right ? am I sure that all ff are reset at power-on ? In general, can I exclude reset from my vhdl code on all fpga projects ?

Sorry, but I'm new on fpga and this is a problem.....

回帖(1)

杨玲

2018-10-8 17:57:49
所有Spartan和Virtex FPGA都是基于SRAM的。
它们在上电后配置
使用ISE工具生成的比特流。
该比特流包括初始化数据
部分中的每个触发器和RAM位。
因此,实际上所有触发器都会在“通电”时复位
您认为配置过程是“开机”。
没有重置时ISE的默认操作
指定是在比特流中将触发器初始化为零。
那里的默认动作
指定的复位(异步或同步)是将触发器初始化为
重置源代码中指定的状态。
例如,如果你想要一个触发器
在初始化之后,你需要以某种方式指定。
最简单的方法
是给它一个重置。
在代码中省略重置的一个大问题是模拟器不会
假设在模拟开始时触发器为零。
所以在这种情况下模拟
与硬件不匹配。
通常我会在模块中添加一个异步复位输入
用于模拟,但是当我实例化模块时,只需将其降低。
这适合一对
目的。
首先,在源代码中拼写出每个触发器的复位状态
因此比特流将触发器初始化为指定的值
启动。
其次,它为我提供了一种通过添加短重置来正确模拟的方法
在我的测试平台中脉冲。
HTH,
的Gabor
-  Gabor

以上来自于谷歌翻译


以下为原文

All Spartan and Virtex FPGA's are SRAM-based.  They are configured after power-on from
a bitstream you generate with the ISE tools.  This bitstream includes initialization data for
every flip-flop and RAM bit in the part.  So in effect all flip-flops are reset at "power on" if
you think of the configuration process as "power on".  The default action for ISE when no reset
is specified is to initialize the flip-flop to zero in the bitstream.  The default action when there
is a reset specified (asynchronous or synchronous) is to initialize the flip-flop to the
reset state as specified in the source code.  So for example if you want a flip-flop to
be "1" after initialization you would need to specify that somehow.  The simplest way
is to give it a reset.
 
One big problem with leaving out reset in your code is that the simulator will not
assume flip-flops to be zero at the start of simulation.  So in this case the simulation
will not match the hardware.  Often I add an asynchonous reset input to my modules
for simulation but then just tie it low when I instantiate the module.  This serves a couple
of purposes.  First, the reset state of each flip-flop is spelled out in the source code
and therefore the bitstream will initialize the flip-flops to the specified value on
start-up.  Second, it gives me a way to simulate correctly by adding a short reset
pulse in my testbench.
 
HTH,
Gabor
-- Gabor
举报

更多回帖

发帖
×
20
完善资料,
赚取积分