芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 15098|回复: 7

小梅哥《时序分析与优化》系列第七课课后习题思考

[复制链接]
  • TA的每日心情
    萌哒
    2020-5-8 15:12
  • 1

    主题

    1

    帖子

    21

    积分

    新手上路

    Rank: 2

    积分
    21
    发表于 2019-12-19 22:08:40 | 显示全部楼层 |阅读模式
    本帖最后由 1007689149 于 2019-12-19 22:15 编辑

    题目中,小梅哥将顶层文件中的此always块中的敏感值由*改为Clk9M后,工程Fmax由300+MHz降低至160MHz。小梅哥要求我们对此时的工程进行优化。

    1.首先观察时序分析报告后,发现是vcount_r和disp_data传输过程中延迟较大。
    分析发现,vcount_r与vcount有关。

    所以首先将vcount改为寄存器模式:

    reg vcount;                              (此寄存器原为wire型寄存器)

    always@(posedge clk)
       vcount=vcount_r-vdat_begin;    (此语句原为assign赋值语句)

    更改完成后编译,得工程Fmax增大至256MHz.


    2.再次观察时序报告,发现问题hcount_r与disp_data传输过程中延时较大。
    分析发现,hcount_r与hcount有关。
    因此将其转换为reg格式:

    reg hcount;                                 (此寄存器原为wire型寄存器)

    always@(posedge clk)
       hcount=hcount_r-vdat_begin;    (此语句原为assign赋值语句)

    此时再次编译,得到工程Fmax增大至396.5MHz



    3.再次查看时序报告,系统仍存在延时:

    分析认为该延时是计数器结构问题,暂时无法进一步优化。


    至此,该工程时序优化结束!


    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 428

    主题

    811

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    16107
    QQ
    发表于 2019-12-19 22:29:11 | 显示全部楼层
    然而错的一塌糊涂
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    13

    积分

    新手入门

    Rank: 1

    积分
    13
    发表于 2020-3-8 16:42:04 | 显示全部楼层
    说错了是不是应该用<=赋值而不是=赋值?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-25 15:50
  • 0

    主题

    3

    帖子

    23

    积分

    新手上路

    Rank: 2

    积分
    23
    发表于 2020-3-28 16:45:23 | 显示全部楼层
    梅哥这位兄弟说的对不对啊??????
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-25 15:50
  • 0

    主题

    3

    帖子

    23

    积分

    新手上路

    Rank: 2

    积分
    23
    发表于 2020-3-28 16:53:09 | 显示全部楼层
    求解惑啊,你们怎么做的这个题目啊?????????
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-8-18 13:16
  • 0

    主题

    1

    帖子

    3

    积分

    新手入门

    Rank: 1

    积分
    3
    发表于 2021-8-18 13:19:36 | 显示全部楼层
    admin 发表于 2019-12-19 22:29
    然而错的一塌糊涂

            reg R0_act;
            reg R1_act;
            reg R2_act;
            reg R3_act;
       
        always@ (posedge Clk9M) begin
            R0_act <= vcount >= 0 && vcount < 68;        //正在扫描第0
            R1_act <= vcount >= 68 && vcount < 136;//正在扫描第1行
            R2_act <= vcount >= 136 && vcount < 204;//正在扫描第2行
            R3_act <= vcount >= 204 && vcount < 272;//正在扫描第3行
        end
    请问这样做对吗
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 428

    主题

    811

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    16107
    QQ
    发表于 2021-8-21 17:44:01 | 显示全部楼层
    乔帮主_oxyYX 发表于 2021-8-18 13:19
    reg R0_act;
            reg R1_act;
            reg R2_act;

    你这个没问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    4

    积分

    新手入门

    Rank: 1

    积分
    4
    发表于 2024-2-22 20:53:35 | 显示全部楼层

    请问楼主错误是因为没有考虑vcount->R0_cat这条组合逻辑路径约束不完整,还是因为vcount作为output接口不能进行约束(我猜的)
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-11-21 17:24 , Processed in 0.119509 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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