论坛账号至少一个月登录一次,否则会被自动冻结!论坛全站广告位出租300元一年,有需要联系QQ:154000559。下载资料E币不足?可以每日签到可获取E币,土豪则可以充值即可。
搜索
版图设计服务,首选奋芯电子 微信:13816911948
广告位出租:ML02 有需要联系QQ:2322712906。
欢迎大家来EDA1024硬件设计开发论坛学习交流!【eda1024.com】
广告位出租:ML04 有需要联系QQ:2322712906。
芯片版图外包,首选奋芯电子 微信:13816911948

[原创] 向李小龙学FPGA

[复制链接]
查看: 546|回复: 0

22

主题

23

帖子

160

E币

助理工程师

Rank: 3Rank: 3

积分
23
发表于 2018-9-3 10:56:12 | 显示全部楼层 |阅读模式
还是从李小龙说起。伴随着一声“哟嚯”,飞出一脚后张开双臂身体半蹲的招牌式动作,被全球各地无数人模仿过。可是我们知道,全世界只有一个李小龙。无论你把“招式”模仿得多么惟妙惟肖,都无法达到那个效果。原因其实很简单,我们不具备他的速度和力量。采用反推法逆向思维,如果具备了他的速度与力量,任何一个招式都会威力无穷。由此可知,基本功是多么重要。
前几节的内容,我们讲的是怎么“减负”,尽量卸下对于完成项目来说没有必要的学习部分。本节内容要讲的就是,对于核心知识点,必须下苦功完全掌握。
我们经常会遇到这样的情况,“感觉”已经懂了,会了,但是一进入实际项目束手无策。为什么?这种情形,绝大部分时候,都是因为基本核心知识点还没有完全学通,处于半懂不懂的状态。例如:
搞不清楚 add_flag和sel_flag的区别 ,不清楚变量使用的条件,不清楚计数器需要用几个已经计数器之间的关系。
那么对于核心知识点,应该达到什么样的标准,才算是真正掌握了呢?
例 :当收到en1=1时,执行一下操作
a.间隔2个时钟周期后,dout产生宽度为5的高电平脉冲,然后
b.间隔2个时钟周期后,dout产生宽度为7的高电平脉冲,然后
c.间隔2个时钟周期后,dout产生宽度为3的高电平脉冲,然后
d.间隔2个时钟周期后,dout产生宽度为6的高电平脉冲。
当收到en2=1时,执行一下操作
a.间隔4个时钟周期后,dout产生宽度为3的高电平脉冲,然后
b.间隔1个时钟周期后,dout产生宽度为6的高电平脉冲,然后
c.间隔6个时钟周期后,dout产生宽度为3的高电平脉冲,然后
d.间隔2个时钟周期后,dout产生宽度为5的高电平脉冲。(答案如下)
  
1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  
18
  
19
  
20
  
21
  
22
  
23
  
24
  
25
  
26
  
27
  
28
  
29
  
30
  
31
  
32
  
33
  
34
  
35
  
36
  
37
  
38
  
39
  
40
  
4142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  
always @(posedge clk or negedge rst_n)begin
  
     if(!rst_n)begin
  
        cnt0  <= 0;
  
    end
  
    else  if(add_cnt0)begin
  
         if(end_cnt0)
  
            cnt0  <= 0;
  
        else
  
            cnt0  <= cnt0 + 1;
  
    end
  
end
  
assign add_cnt0 = add_flag ;      
  
assign end_cnt0 = add_cnt0 && cnt0==x-1 ;
  
always @(posedge clk or negedge rst_n)begin
  
     if(!rst_n)begin
  
        cnt1  <= 0;
  
    end
  
    else  if(add_cnt1)begin
  
         if(end_cnt1)
  
            cnt1  <= 0;
  
        else
  
            cnt1  <= cnt1 + 1;
  
    end
  
end
  
assign add_cnt1 = end_cnt0;      
  
assign end_cnt1 = add_cnt1 && cnt1==4-1 ;
  
always  @(posedge  clk or negedge rst_n)begin
  
    if(rst_n==1'b0)begin
  
        dout  <= 0;
  
    end
  
    else  if(en_dout)begin
  
        dout  <= 1;
  
    end
  
    else  if(end_cnt0)begin
  
        dout  <= 0;
  
    end
  
end
  
assign en_dout = add_cnt0 && cnt0 == y-1;
  
always  @(posedge  clk or negedge rst_n)begin
  
     if(rst_n==1'b0)begin
  
        add_flag  <= 0;
  
    end
  
    else  if(en1||en2)begin
  
        add_flag  <= 1;
  
    end
  
    else  if(end_cnt1)begin
  
        add_flag  <= 0;
  
    end
  
end
  
  
always  @(posedge  clk or negedge rst_n)begin
  
     if(rst_n==1'b0)begin
  
        sel_flag  <= 0;
  
    end
  
    else  if(en1)begin
  
        sel_flag  <= 0;
  
    end
  
    else  if(en2)begin
  
        sel_flag  <= 1;
  
    end
  
end
  
always  @(*)begin
  
     if(sel_flag==0)begin
  
        if(cnt==0)begin
  
        x = 7;
  
        y = 2;
  
       end
  
       else if  (cnt1==1)begin
  
        x = 9;
  
        y = 2;
  
       end
  
       else if (cnt1==2)begin
  
        x = 5;
  
        y = 2;
  
       end
  
       else begin
  
        x = 8;
  
        y = 2;
  
       end
  
    end
  
    else begin
  
         if(cnt==0)begin
  
        x = 7;
  
        y = 4;
  
       end
  
       else if  (cnt1==1)begin
  
        x = 7;
  
        y = 1;
  
       end
  
       else if (cnt1==2)begin
  
        x = 9;
  
        y = 6;
  
       end
  
       else begin
  
        x = 7;
  
        y = 2;
  
       end
  
   end
  
end
类似这些习题,一直要练习到不需要思考的过程,而是形成类似于条件反射式的自然反应。掌握的要领就是不停练习反复练习。在这一点上,没有捷径可走。唯一可依托的,就是——勤奋。
高深的内容都是由最基本的要素组合而成。一旦有了扎实的基本功底,就有了“李小龙的速度与力量”,很多“招式”方面的高深问题就迎刃而解了。
本节中我们通过借喻“功夫”,来说明基本功的重要性以及和高深内容的关系。

FPGA李小龙学习方法.pdf

474.96 KB, 下载次数: 0, 下载积分: E币 -2 元

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入住EDA1024

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|EDA1024硬件论坛 ( 苏ICP备15024581号 )

GMT+8, 2022-1-20 03:40 , Processed in 0.070681 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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