打印
[Actel FPGA]

问个基础问题

[复制链接]
1570|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
北京户口|  楼主 | 2010-1-10 17:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以我们的EasyFPGA030为例,晶振48MHz
1.always块内执行一条if语句或一条阻塞赋值语句需要多长时间?
    在学写verilog程序的过程中有些困惑,看到论坛中有如下程序:
这个程序是让LED以1S 闪烁 ,clk应该是晶振输入引脚
module led_s (led,clk);
input clk;
output [3:0] led;
reg[3:0] led;
reg[24:0] buffer;

always @(posedge clk)
  
   begin

      buffer<=buffer+1;
      
     if(buffer==23'd24000000)
      
      begin
      
       led<=~led;

       buffer<=0;
      end
     
    end
  
endmodule      
每当clk上升沿来临要判断buffer,buffer加一,不知道在下个clk上升沿来临之前always块内的程序是否有足够的时间执行完?


看下另一个程序:
reg[3:0] con;
always @(posedge clk)
con<=con[2:0]+1'b1;


wire tick = con[3];

reg[2:0] cont
always @(posedge clk)
begin
  cont = cont + 1'b1;
  cont = cont + 1'b1;
  cont = cont + 1'b1;
  cont = cont + 1'b1;
  if(tick)
  ...
  ...
end
当always块内的阻塞赋值语句  cont = cont + 1'b1;增加到多少条时将无法捕捉到tick为1的瞬间?

FPGA030执行指令的基本时间单位和晶振输入频率是什么关系?

2.当always块内的程序需要较长时间才能执行完时(大于clk的周期),那么当always块内的程序还没有执行完,下一个clk
上升沿已经来临,这时always是忽略clk上升沿继续执行未完的程序,还是放弃执行未完的程序来响应clk从头开始执行?

相关帖子

沙发
6019实验室| | 2010-1-10 17:19 | 只看该作者
我觉的,ALWAYS忽略CLK,继续执行为执行完的程序!!

使用特权

评论回复
板凳
想实习去| | 2010-1-10 17:20 | 只看该作者
对于Always中的“<=”性语句都是在时钟沿同时执行的,应该不存在有下个时钟沿到来之前always块内的程序是否能执行完的问题!

使用特权

评论回复
地板
LPC300| | 2010-1-10 17:21 | 只看该作者
像这种程序如果赋值都用非阻塞方式能在下一个clk到来前执行完吗?不知道if,case这类语句要花多长时间之行?

always(posedge clk)

begin

    if()

    begin

       ......

    end

    else

    begin

        case(state)

        state1:

            begin

                if()

                begin

                    ......

                    ......

                end

            end

        state2:

        ......

        ......

    end

end

使用特权

评论回复
5
LPC300| | 2010-1-10 17:22 | 只看该作者
夏宇闻老师的很多书都很不错,建议你选购一本入门的教程

使用特权

评论回复
6
S3C2440| | 2010-1-10 17:26 | 只看该作者
我买的是verilog数字系统设计教程,想有本实践性更强的。

使用特权

评论回复
7
6019实验室| | 2010-1-10 17:36 | 只看该作者
还是看看这方面的视频对照着课本学习学习吧!

使用特权

评论回复
8
S3C2440| | 2010-1-10 18:05 | 只看该作者
学习了啊!多上上论坛还是有好处的!

使用特权

评论回复
9
peigang| | 2010-1-11 12:29 | 只看该作者
夏宇闻老师
5楼介绍一本呗。
谢谢了

使用特权

评论回复
10
peigang| | 2010-1-11 12:30 | 只看该作者
应该有一个优先执行

使用特权

评论回复
11
beny5566| | 2010-1-12 19:19 | 只看该作者
这个时间不好说啊,
不过在这种环境还是用非阻塞赋值比较好。

使用特权

评论回复
12
午夜粪车| | 2010-1-12 20:38 | 只看该作者
这个还是基础啊?

使用特权

评论回复
13
linhai1986| | 2010-1-13 16:57 | 只看该作者
这个都是基础的话,就太打击我了

使用特权

评论回复
14
beny5566| | 2010-1-13 20:48 | 只看该作者
写代码的时候,
比如说状态机,
最好把同步电路和异步电路分开写,
这样时序效果会更好。

使用特权

评论回复
15
北京户口|  楼主 | 2010-2-24 12:30 | 只看该作者
谢谢大家,问题已经解决!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

107

主题

521

帖子

1

粉丝