找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1127|回复: 10
打印 上一主题 下一主题

一个工程优化的问题

[复制链接]

20

主题

85

帖子

-9732

积分

未知游客(0)

积分
-9732
跳转到指定楼层
1#
发表于 2009-7-14 08:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x
我用的是xilinx-TQ144芯片,现在碰到工程占用资源过大的问题,导致程序不能Fit,结果发现是因为一个进程中case语句占用了整个芯片资源的40%左右,看了吓一跳.case语句是这样的, case cnt is
% w5 Q0 `- F, j! ^6 n                                     when 0=>............;. K; y' p8 y# z: T" h) \" Y
                                     when 1=>............;; k5 w% \' L9 X2 D8 J: t( e8 i  A
                                     when 2=>rsdout<=reg(2);
  P! X* A- p' D+ G6 Q* \                                       .
% A. Z8 ~6 `! P4 ?* j                                       .
7 X, m3 v3 f- N5 \+ x& p" V9 l: P8 j- M                                       .8 L  r/ [" i( g/ N( k
                                     when others=>rsdout<='1';  }$ i; B+ ]" U  s
                             end case;' T, X( I/ {% V
                             cnt就只有0 to 20 而已;/ t/ R8 N4 E. i" F/ z( L$ T
                             为什么case这么简单的20个赋值语句会占了这么大的资源呢;  q8 C- H4 B5 ?2 e8 N
还请高手指点啊,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

20

主题

85

帖子

-9732

积分

未知游客(0)

积分
-9732
2#
 楼主| 发表于 2009-7-14 09:36 | 只看该作者
本帖最后由 chenqinte 于 2009-7-14 09:44 编辑
" ~6 F6 c5 \, G0 ?+ Y0 r7 t6 b
7 s, W. n/ n9 Y找到原因了,不是语句的问题,是case语句里还包含了其他模块,但如何解决工程优化问题,我还是不是很了解,请大家帮忙了

20

主题

85

帖子

-9732

积分

未知游客(0)

积分
-9732
3#
 楼主| 发表于 2009-7-14 10:51 | 只看该作者
现在发现了一个问题就是一个分频进程占用了蛮多的资源
/ r3 q# J$ @8 m7 P' Y7 aPROCESS(CLKIN)  --1302分频,产生约9.6K时钟8 [# y6 G) Y+ F7 O- A$ Z6 U7 B
BEGIN$ C# G: ~% `9 h8 ?5 A8 w' `
    IF CLKIN'EVENT AND CLKIN = '1' THEN
& }# x6 L7 V, P! L+ E& T) e7 u             IF CNT_IDLE = IDLE_TIME THEN5 _" ^& b0 D) [0 Y1 B1 K3 P
                      CNTA <= 0;4 l( Y: h& W, [1 c- E1 ~
                  ELSIF RSDIN = '0' AND CNTA < RS_CLK_DIV_HALF THEN6 ^* }" ^/ ~( x1 J0 l' c
                      CNTA <= CNTA + 1;
$ o# U5 A, t0 J5 v# i: |' ~                  END IF;
, T/ j1 N- Y! B6 e' S                  
# c! g5 o/ Y# ]9 U/ V7 M                  IF CNTA = RS_CLK_DIV_HALF2 OR CNTB = RS_CLK_DIV THEN
9 p5 h/ i/ Q/ c  [- H- v                      CNTB <= 0;5 c" g0 T% y) J
                  ELSE
' k  O0 Z0 w2 O! T) s8 m" c+ k                      CNTB <= CNTB + 1;- J7 p# [+ p( B+ y# F" z
                  END IF;- S8 F. B' K5 M3 s* p9 n. _
                  ; z' t* k6 F' y2 g0 }7 n- J
                  IF CNTB < RS_CLK_DIV_HALF THEN1 @& R7 i$ h9 ?9 j
                      CLK_RS <= '1'; * j& [# u+ j+ [' W- M" L( C4 J
                  ELSE
- ^3 Q* t# ?9 O                      CLK_RS <= '0';
/ A1 u$ b: \1 h, o                  END IF;
$ |8 O4 ]/ ]/ o* G/ P         END IF;! ~7 V' g  Y6 w
END PROCESS;# F$ N) \/ W6 \% j; }8 y# [. J
这分频可以改变一下,使它占用的资源降低吗

7

主题

54

帖子

852

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
852
4#
发表于 2009-7-14 11:01 | 只看该作者
case语句里包含了其他模块,也就是说case语句和它里面的那个模块是串行工作的,你可以试试串并转换。将case语句中的其它模块提出来,让那个模块和case语句并行工作
佛祖来了又去,我却依然长跪不起...

7

主题

54

帖子

852

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
852
5#
发表于 2009-7-14 11:06 | 只看该作者
分频进程必然会占用很多资源。所以如果还有多余的DCM资源的话,就用DCM做分屏吧
佛祖来了又去,我却依然长跪不起...

20

主题

85

帖子

-9732

积分

未知游客(0)

积分
-9732
6#
 楼主| 发表于 2009-7-14 13:21 | 只看该作者
DCM是什么,如何用DCM来做分频呢

7

主题

54

帖子

852

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
852
7#
发表于 2009-7-14 13:26 | 只看该作者
DCM是全局时钟资源,关于这个你可以看看书。
佛祖来了又去,我却依然长跪不起...

20

主题

85

帖子

-9732

积分

未知游客(0)

积分
-9732
8#
 楼主| 发表于 2009-7-14 13:57 | 只看该作者
cpld也可以用全局时钟资源吗

7

主题

54

帖子

852

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
852
9#
发表于 2009-7-14 16:00 | 只看该作者
不一定,有些芯片是没有DCM的。你要看芯片的datasheet
佛祖来了又去,我却依然长跪不起...

20

主题

85

帖子

-9732

积分

未知游客(0)

积分
-9732
10#
 楼主| 发表于 2009-7-17 14:31 | 只看该作者
又碰到了一个问题,还请大家帮我看看.7 l3 S2 `$ |& X5 n" y$ }8 v$ d: W" V
                  REG(5 DOWNTO 1) <= REG(4 DOWNTO 0);
$ s6 A4 i/ o0 f; r                  REG(0) <= RSDIN;
3 e( ]  q, b4 d! F: f1 l5 \这样的移位程序让我很是头疼;1 A5 W" i" u9 z3 M
                  REG(4 DOWNTO 1) <= REG(3 DOWNTO 0);& N/ Z  D) r2 n( @6 d" n+ p
                  REG(0) <= RSDIN;' o7 O- Y( J  d3 O7 M! C
2个移位语句只不过是下面一个比上面一个少移一位,资源的占用却完全不一样;
% j; T# u$ O/ N上面的语句资源占用比下面的高多了,这是为什么;
5 B" c, v0 \' z+ G, g3 |: p移位语句也会占用很大的资源吗

7

主题

54

帖子

852

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
852
11#
发表于 2009-7-20 17:13 | 只看该作者
这个你要看芯片的结构才能从根本上弄清楚原因。, y' y. G6 W( m! T
不过你可以先看 Technology Report,看一下综合出来的结果,然后再去看芯片的datasheet,找到为什么这样综合的原因。
佛祖来了又去,我却依然长跪不起...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-12-27 04:09 , Processed in 0.059278 second(s), 33 queries , Gzip On.

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

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

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