找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

一个工程优化的问题

[复制链接]

20

主题

85

帖子

-9732

积分

未知游客(0)

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

EDA365欢迎您!

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

x
我用的是xilinx-TQ144芯片,现在碰到工程占用资源过大的问题,导致程序不能Fit,结果发现是因为一个进程中case语句占用了整个芯片资源的40%左右,看了吓一跳.case语句是这样的, case cnt is
9 X" s0 W4 z+ |                                     when 0=>............;
  }6 j& {1 p8 b) a& x                                     when 1=>............;
# m4 [% b4 `( |0 D% i9 U+ W4 o6 {                                     when 2=>rsdout<=reg(2);
* K1 H$ C7 i+ }                                       .
' ~5 {' a( x" y# H; ~7 d5 R                                       .4 }" y5 y7 m' L& s7 |& \* U
                                       .
, `' P' h# l; R% W  N                                     when others=>rsdout<='1';
: C# n' L# @! T9 k                             end case;* d( i2 E8 W" ]
                             cnt就只有0 to 20 而已;
( B) x, R2 }4 `) _  r+ @/ P                             为什么case这么简单的20个赋值语句会占了这么大的资源呢;
( l9 s  O# B% ?; z还请高手指点啊,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

20

主题

85

帖子

-9732

积分

未知游客(0)

积分
-9732
2#
 楼主| 发表于 2009-7-14 09:36 | 只看该作者
本帖最后由 chenqinte 于 2009-7-14 09:44 编辑 3 U  g0 q+ A, w# m% @" B9 i

' x" ~! |6 ?0 h找到原因了,不是语句的问题,是case语句里还包含了其他模块,但如何解决工程优化问题,我还是不是很了解,请大家帮忙了

20

主题

85

帖子

-9732

积分

未知游客(0)

积分
-9732
3#
 楼主| 发表于 2009-7-14 10:51 | 只看该作者
现在发现了一个问题就是一个分频进程占用了蛮多的资源( o3 a6 r5 f& i, B( b0 c
PROCESS(CLKIN)  --1302分频,产生约9.6K时钟
' {: k! b% E8 X$ C' [7 p4 ]BEGIN7 o  r- Y" V3 ^2 g2 l6 G
    IF CLKIN'EVENT AND CLKIN = '1' THEN
, p" s, W; E5 @* v             IF CNT_IDLE = IDLE_TIME THEN
4 v" y$ I& X6 ~' N' l1 x: K                      CNTA <= 0;6 D3 R8 f. \# c& |: b+ x3 X4 T
                  ELSIF RSDIN = '0' AND CNTA < RS_CLK_DIV_HALF THEN
: U- u- j7 h7 D; f! A                      CNTA <= CNTA + 1;' i0 D& u$ n$ v+ h3 Z  M
                  END IF;8 X$ F/ p. ]% R# y
                  
' _1 T, j# z( o9 `0 {, k  K8 E                  IF CNTA = RS_CLK_DIV_HALF2 OR CNTB = RS_CLK_DIV THEN
, b: r9 @- K: a                      CNTB <= 0;" A! i% [9 F6 U/ u$ }
                  ELSE 2 g1 i& k1 {6 j/ H6 L3 ^3 j
                      CNTB <= CNTB + 1;0 H% q5 G6 @0 H3 ?# ^$ w
                  END IF;
5 }& l% W/ W5 C! B0 z  {5 r; F                  ; N" O" t# s* N+ V6 a4 L9 f
                  IF CNTB < RS_CLK_DIV_HALF THEN2 u" a6 E; C7 t  f4 f8 e& c& X" {
                      CLK_RS <= '1'; : m) b$ w3 c1 `: e; |! g. l: ?
                  ELSE1 L2 d% q' g$ m6 K( G
                      CLK_RS <= '0';
+ L+ {( H5 b' U& C9 o3 N3 z                  END IF;* U6 `* _  d, J# w
         END IF;
2 l: \2 e" G* ~+ l  lEND PROCESS;5 B7 b3 E5 }% d0 [' D
这分频可以改变一下,使它占用的资源降低吗

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 }, S! n9 W9 A                  REG(5 DOWNTO 1) <= REG(4 DOWNTO 0);  E$ i, K' A  _2 G8 N
                  REG(0) <= RSDIN;- \6 m* f* r% t" k: |& M) \1 R
这样的移位程序让我很是头疼;
' g4 m+ P' n$ B- g5 k* i: r                  REG(4 DOWNTO 1) <= REG(3 DOWNTO 0);
* L. L7 e( x: s  @% r                  REG(0) <= RSDIN;% v1 T1 Z, I. N
2个移位语句只不过是下面一个比上面一个少移一位,资源的占用却完全不一样;1 H: L/ d) {1 _$ `
上面的语句资源占用比下面的高多了,这是为什么;( z/ o7 i4 S- m2 \
移位语句也会占用很大的资源吗

7

主题

54

帖子

852

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-12-27 03:51 , Processed in 0.060053 second(s), 32 queries , Gzip On.

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

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

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