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

我想问一下关于毛刺的问题

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
希望高手不吝赐教.代码如下& s0 q2 x0 H5 v" s3 K4 G, v& r
module CA1(clk,CA_code,order1,order2);
) S* X2 c  E0 c) O5 N  input clk;: [- t& M8 f. [7 ?
  input[3:0] order1,order2;# f1 w8 o) l# ^) Y' ^0 c7 E# u3 r
  output CA_code;% m2 _4 F! ?3 U, `  |* i2 d
  , X7 W" y; k- T9 I3 F* w0 P
wire G1_out;
2 u% I0 T& R# M2 z; S' Fwire G1_add;
1 U, {$ d# ~9 b- Areg[10:1] G1='b1111111111;. o; D8 K& ?- U- i0 m7 R: |! ^; Z
assign G1_out=G1[10];" p5 n' h% c2 z, I8 {
assign G1_add=G1[3]+G1[10];
' A0 \4 n2 o$ n" ~' G9 \- Zalways @(posedge clk)1 \$ ^# A) L! T0 e! f# M0 R
begin+ J- M+ C2 {  v+ U
  G1=G1<<1;- D0 }$ _% z4 R
  G1[1]=G1_add;
9 ], I' q3 }# ?+ Vend
8 o3 f, d! S7 n( Y
, I  q' W% K6 S2 ]& zwire[3:0] x,y;' ?) j- \( |8 K* |
wire G2_out;
0 r* K4 k8 u+ |+ l+ s% [wire G2_add;
' E6 \) n4 Y) I- n+ Zreg[10:1] G2='b1111111111;# z, [2 R4 h/ {; |* E/ o
assign x=order1;
; a' }- u0 c& c+ ?assign y=order2;+ Z( u8 v( L6 f: @/ A* w
assign G2_out=G2[x]+G2[y];* z! D8 R' `4 p5 \. n
assign G2_add=G2[2]+G2[3]+G2[6]+G2[8]+G2[9]+G2[10];
% O/ g, c# s2 b1 F4 |always @(posedge clk)
4 n! `/ C; P) W" Z  L4 b8 Tbegin$ ~  X8 [" r! h% K2 J
  G2=G2<<1;
; ]; u( ?! |5 K! F" f* i+ `  G2[1]=G2_add;6 O8 [! d2 F' ]( X3 V
end
* j$ a& E/ E( f! ]assign CA_code=G1_out+G2_out;! H$ o1 R8 v, \: k% U! e8 i" J
endmodule 4 q$ j2 z/ ~  O1 j* g; W! h, f8 U
  时序仿镇如附件,首先我是个新手也是第一次遇到毛刺问题听说组合逻辑会出现毛刺,但不知道为什么我的代码会有毛刺(我这里指的是毛刺产生的原因)不过我加了个D触发器后把毛刺消了.可是在设计时不应该是出了毛刺找消的办法,因该是怎么样不让它出毛刺,我希望高手们能给我点建议,在这里谢谢大家了先.

CA产生器仿真毛刺.JPG (104.03 KB, 下载次数: 14)

CA产生器仿真毛刺.JPG

该用户从未签到

2#
 楼主| 发表于 2008-10-29 16:47 | 只看该作者
没有高手在吗?

该用户从未签到

3#
 楼主| 发表于 2008-10-30 09:29 | 只看该作者
哎这里的人气不是很旺呢!

该用户从未签到

4#
发表于 2008-10-30 22:09 | 只看该作者
order1,order2的输入波形如何??

该用户从未签到

5#
 楼主| 发表于 2008-10-31 10:00 | 只看该作者
order就是2个命令1=4,2=8.

该用户从未签到

6#
发表于 2008-11-3 18:00 | 只看该作者
是不是竞争与冒险啊,

该用户从未签到

7#
 楼主| 发表于 2008-11-5 08:44 | 只看该作者
是啊

该用户从未签到

8#
发表于 2008-11-7 17:05 | 只看该作者
一看你的代码就知道一定会存在毛刺,毛刺的产生不一定就是竞争冒险,还有可能是亚稳态等原因,但是你的代码很明显有问题,首先你应该明白阻塞和非阻塞的区别,在时序中一般采用非阻塞语句. 还有建议你书写代码的规范性,难道你不感觉你的代码很乱吗?

该用户从未签到

9#
发表于 2008-11-11 08:08 | 只看该作者
毛刺是竞争产生的干扰输出叫毛刺;9 \) J) u4 Q7 V+ \% C5 @9 {

' T' d" B: e7 O0 S5 u; {解决办法:  \. M1 Y% ~( M- u
1;发现并消除互补变量(比如A*/A);
' o# g+ }# l0 Q! g/ Y# s2;增加乘积项;$ j1 v, a" x& n2 y- l6 s0 g/ g7 Y; z
3;输出并联电容(几pF到数10pF);

该用户从未签到

10#
发表于 2008-11-11 08:12 | 只看该作者
毛刺是竞争产生的干扰输出叫毛刺;; F$ L) A# P5 K; U' W  B
$ i1 m0 r# [6 z( p9 {
解决办法:
2 x* w: }3 O9 ^/ r: w! U7 D1;发现并消除互补变量(比如A*/A);
( \! O" f* a4 U- S2;增加乘积项;
9 m2 p4 V! o) d0 a$ E/ A8 v3;输出并联电容(几pF到数10pF);
, X+ k5 B" y- V8 k1 b/ n. ~$ h# s% U1 k4 x$ F
哈哈,你的代码我看不来;只会点VHDL;
+ N$ O" X+ Y( g+ a6 `希望上面的对你有没有用

该用户从未签到

11#
 楼主| 发表于 2008-11-11 08:42 | 只看该作者
谢谢各位
  • TA的每日心情
    开心
    2025-8-13 15:03
  • 签到天数: 43 天

    [LV.5]常住居民I

    12#
    发表于 2025-6-24 15:48 | 只看该作者
    学写了学习了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-4 21:42 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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