找回密码
 注册
关于网站域名变更的通知
查看: 192|回复: 3
打印 上一主题 下一主题

用Verilog或VHDL写一段代码,实现消除一个glitch(毛刺)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-2-7 10:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
用Verilog或VHDL写一段代码,实现消除一个glitch(毛刺)5 Z- m# Y9 ]0 T$ I* V

该用户从未签到

2#
发表于 2023-2-7 11:11 | 只看该作者
消除毛刺的方法,就是防止亚稳态的措施(例如降低时钟频率,用更快的触发器FF),因为毛刺可能会导致亚稳态

该用户从未签到

3#
发表于 2023-2-7 11:21 | 只看该作者
最好采用同步器的方式,将传输过来的信号经过两级触发器就可以消除毛刺。但这种方式消除毛刺是需要满足一定条件的,并不能保证一定可以消除,只能尽量降低毛刺的影响。

该用户从未签到

4#
发表于 2023-2-7 13:32 | 只看该作者
module    glitch(
! I" ?3 r' n5 I7 v: [* `# X input      clk,2 j# q5 `9 t! u
input      rst_n,
5 s7 b, h( D' z9 n0 M) y. V input      data,% k: H5 _* T& Z2 J( s1 ~+ h% b% s
output reg value_d);! B' r/ s$ U; x6 @/ ^. Q9 w

3 m3 K& q. y' S/ Yreg  data_t0  ;
1 [/ p6 Z8 W% [" ]( P! }& v; ]: i& @
* A- }+ }% h8 }: O& X$ |always @(posedge clk or negedge rst_n) begin$ t+ i+ F3 c2 C4 a% v' E. ?' N/ P, A
   if(!rst_n) begin
; `$ a$ G+ G* q& Z6 y4 Y      data_t0  <= 1'b0;% a7 v) c) {: z0 j) C, h9 C
      value_d  <= 1'b0;
0 h9 e. |# f+ V, I7 _     end 3 {/ c* Q9 E; u# `
   else begin7 N) H2 m# \/ Y9 o9 f5 l
      data_t0  <= data   ;9 X' O% u7 |* I. t4 f8 ]: F
      value_d  <= data_t0;
$ p/ n5 w. P7 {/ ]9 ^/ n     end
4 B. [8 ~2 |, Tend
1 v: l' v# d1 m0 D- j$ x' q, X! u
6 w* P# t: q7 H7 Y$ p( K0 Vendmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-20 09:05 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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