|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在实际设计中,由于外部阻容复位时间短,可能无法使FPGA内部复位到理想的状态,所以今天介绍一下网上流行的复位逻辑。) h' Y9 [0 Q6 ~7 `: l, z& R" o: ^
0 m3 K2 y8 ?( c# T在基于verilog的FPGA设计中,我们常常可以看到以下形式的进程:! }0 z( \5 o3 h$ a
9 E: e; |9 x+ H/ a8 Z
_" i- a4 g. B9 E8 N' v `8 ]% X0 P/ u
信号rst_n用来对进程中所用变量的初始化,这个复位信号是十分重要的,如果没有复位,会导致一些寄存器的初始值变得未知,如果此时FPGA就开始工作的话,极易导致错误。8 f; M6 ?% v0 N5 D& t, B
1 j7 i7 T# |- H% C O0 B/ I2 Q, Z n' }那么,这个复位信号来自何处?难道我们做好的系统,每次上电后都要手动按一下reset按钮么?
! s9 r m M/ x( Q, T' W3 ?; }3 m- Q& Y o. Y+ t8 k6 C0 L
答案是否定的!这个复位信号其实是由特定的程序来产生的,系统每次上电,都会由该程序产生一个复位信号,从而避免了手动复位。
4 r( c7 r, _4 }/ D7 _. y2 G( j. ?& R3 b! q+ _: u
复位的方案很多,下面介绍一个简单方案。
8 C3 w: A4 `, V8 H1 {: O
4 ]) o; {% y4 r$ V
9 {4 G& R+ E8 n' f, N5 x. D3 ^: ^- ^: z3 N& a6 z( u
3 z @& x3 X: J9 H! ]. x, D0 M' Mclk:50M时钟输入. S/ |1 ~# x. o* |; [5 s% Z
4 ?0 f7 x6 U( P: H9 Q$ o* xrst_n:异步复位输入; A3 N7 P; \- @4 d {. }
" K8 x/ J- e% O0 I4 Fsys_rst_n:系统全局同步复位信号: f: p& S3 q5 ]3 k* p$ T) e
6 p: C4 h) V# S- O3 M# |1 ~
第一个进程用来延时,当上电后,延时100ms,以保证FPGA内部达到稳定状态;此时sys_rst_n始终为0,也就是系统时钟处于复位状态中;2.当100ms延时结束后,sys_rst_n与系统时钟同步释放,即sys_rst_n拉高,复位结束,系统开始正常工作。5 s. I$ h% _+ C* [- U7 r5 N
" ~% B, h ?2 m2 |! I g8 q
版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处
% O5 J7 x) M: s- h. J
# @$ S9 y9 T2 l* M9 x作者:杭州卿萃科技ALIFPGA
+ J3 L7 Q, s( U. t- _, h6 V; o; W& h! J M9 A' i
原文地址:杭州卿萃科技FPGA极客空间
# e! t) r4 I( l- H V$ P
1 y5 M" q9 @( \ r3 u& Y: _
$ b. U/ A9 }. M# N9 n8 Z |
|