找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

一个工程优化的问题

[复制链接]

20

主题

85

帖子

-9732

积分

未知游客(0)

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

EDA365欢迎您!

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

x
我用的是xilinx-TQ144芯片,现在碰到工程占用资源过大的问题,导致程序不能Fit,结果发现是因为一个进程中case语句占用了整个芯片资源的40%左右,看了吓一跳.case语句是这样的, case cnt is* m' m: s: x% z  s/ Z- [' A, o
                                     when 0=>............;. y; E2 Q3 J) L. n1 A- N
                                     when 1=>............;
, H+ h, W1 r2 ]& p& v                                     when 2=>rsdout<=reg(2);
/ Z' b- C# W4 {                                       .
' k* O7 W. C, `1 p2 g                                       .
3 L. G9 r8 z- o+ b5 ]                                       .
$ t1 c; X# u1 C$ B6 S) q                                     when others=>rsdout<='1';
7 v7 Q0 M1 M: p& T                             end case;8 B/ K7 y& u$ p
                             cnt就只有0 to 20 而已;
7 J( R( D# ?! }  p$ A& C1 b                             为什么case这么简单的20个赋值语句会占了这么大的资源呢;
! K; j. a9 q2 w: x还请高手指点啊,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

20

主题

85

帖子

-9732

积分

未知游客(0)

积分
-9732
2#
 楼主| 发表于 2009-7-14 09:36 | 只看该作者
本帖最后由 chenqinte 于 2009-7-14 09:44 编辑
! {- \' x/ ^- k5 r# ?
' q" T* f4 a: O( X' v/ r找到原因了,不是语句的问题,是case语句里还包含了其他模块,但如何解决工程优化问题,我还是不是很了解,请大家帮忙了

20

主题

85

帖子

-9732

积分

未知游客(0)

积分
-9732
3#
 楼主| 发表于 2009-7-14 10:51 | 只看该作者
现在发现了一个问题就是一个分频进程占用了蛮多的资源! T/ K% a5 d1 v4 {. p  J
PROCESS(CLKIN)  --1302分频,产生约9.6K时钟; x: s' ~4 t) @& }8 j- I
BEGIN4 [! @) J- O+ S
    IF CLKIN'EVENT AND CLKIN = '1' THEN
5 f4 z% x( K/ a( s: C# O             IF CNT_IDLE = IDLE_TIME THEN
/ y. `) b5 S) @( X                      CNTA <= 0;" k# @$ O- |7 X2 ~
                  ELSIF RSDIN = '0' AND CNTA < RS_CLK_DIV_HALF THEN7 s! p1 O& [9 W4 R  p# X
                      CNTA <= CNTA + 1;" T) ^; b; P8 q- v
                  END IF;
, Q" C* p' S2 I+ Z  G! Z                  9 _1 m, p: S- @& `: E4 e; w; s, S
                  IF CNTA = RS_CLK_DIV_HALF2 OR CNTB = RS_CLK_DIV THEN! L4 \* d" U. J9 X8 b
                      CNTB <= 0;1 `4 |) L  M0 x' s$ k+ B  _
                  ELSE
4 ~' E# v6 @* c; |3 K3 I- s$ W                      CNTB <= CNTB + 1;
& Y* C) j- g% t1 _8 F                  END IF;
7 k# ]/ Y# J) M/ `7 P. n8 Z, e8 G                  3 a) o0 }: j! M+ H( s4 t% q
                  IF CNTB < RS_CLK_DIV_HALF THEN: J+ ~& H$ h3 h, s
                      CLK_RS <= '1'; 9 H0 g6 D; l2 [  a. h0 S
                  ELSE0 D: C; r* h  p- p* D
                      CLK_RS <= '0';/ O( q- r* ]5 Z8 G* `; d8 t! n2 ~
                  END IF;* A, ^: I# Q' ~, U+ m9 x
         END IF;
# p, O9 D: M5 m* D: BEND PROCESS;* B& N# v3 m9 {% O. v9 R
这分频可以改变一下,使它占用的资源降低吗

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 | 只看该作者
又碰到了一个问题,还请大家帮我看看.- k* x8 `. J! R2 o5 D: d
                  REG(5 DOWNTO 1) <= REG(4 DOWNTO 0);' w0 G$ l/ V7 Q2 |+ C$ ^1 j3 o
                  REG(0) <= RSDIN;" c# P: a8 P! U: s& v
这样的移位程序让我很是头疼;, k$ r7 n' g5 F
                  REG(4 DOWNTO 1) <= REG(3 DOWNTO 0);, D# Z- F- A" C- N' ^
                  REG(0) <= RSDIN;* O6 ]6 l( n1 H/ C
2个移位语句只不过是下面一个比上面一个少移一位,资源的占用却完全不一样;
* b7 I% @( U* b8 r上面的语句资源占用比下面的高多了,这是为什么;
  D. I# d# ^0 T4 v& c移位语句也会占用很大的资源吗

7

主题

54

帖子

852

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-12-26 02:56 , Processed in 0.059196 second(s), 32 queries , Gzip On.

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

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

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