Handel-C中时钟控制

原创 2013年12月05日 22:08:54

Handel-C工程中的main函数都是在一个时钟源的控制下执行的。搞清楚每一部分的代码在哪个时钟周期段内执行对程序设计者来说是一件极其重要的事情。这不仅是因为它可以使设计者写出的代码可以执行速度更快,更重要的是它关系到设计者写出的代码当用到并行结构时是否能够正确的执行,是否能正确的按照设计者的设计初衷去执行。精确的时钟控制对于与外部硬件通信也是十分的重要,因为某些硬件对给出的控制信号的时序变化要求非常严格。

Handel-C中的时钟使用规则如下:

1、赋值语句和延时语句每执行一次花费一个时钟周期。

2、通道通信一般情况只花费一个时钟周期,如果通道通信的某个分支未开始传输数据,那么另一个分支就一直等待直到它做好传输数据的准备。

例如:

par

{

       link ! x; // Transmit

        link ? y; // Receive

}

上述代码只花销了一个时钟,因为x向通道写和y从通道读是同时开始的.这个并行块实现的功能相当于把x赋值给了y.

par

{

          {                // Parallel branch 1

             a = b;

             c = d;

             link ! x;

          }

        link ? y;     // Parallel branch 2

}

代码中的branch2等到第三个时钟周期branch1准备好数据传输时才开始通信。

3、表达式没有时钟花销,比如((y*z)+(w*k))<<2没有时钟花销,越复杂的表达式只是会包含更多的硬件资源。

 

 

 

Handel-C工程的时钟源可以通过FPGA芯片的某个引脚由外部时钟振荡器提供,也可以由FPGA芯片内部自己生成。为main函数指定时钟源的一般形式为:

  set clock=Location;

Location的形式可以是:

Location

描述

internal Expression

时钟由芯片内部产生

external[Pin]

时钟由外部引脚提供

external_divide[Pin]

时钟由外部引脚提供并分频

具体使用方式如下:

set clock=external “Y2”;

set clock=external_divide “Y2” 2;

第一条语句的意思是时钟由外部引脚Y2提供,第二条语句的意思是时钟是由外部引脚Y2提供的时钟经2分频以后的值。

Handel-C中的prialt

prialt statements are used with multiple channels, to select the first one that is ready for a read ...
  • diyuxiaobing
  • diyuxiaobing
  • 2013年12月05日 22:15
  • 761

C++笔记:面向对象编程(Handle类)

句柄类 句柄类的出现是为了解决用户使用指针时需要控制指针的加载和释放的问题。用指针访问对象很容易出现悬垂指针或者内存泄漏的问题。 为了解决这些问题,有许多方法可以使用,句柄类就是其中之一。...
  • liufei_learning
  • liufei_learning
  • 2014年05月05日 08:28
  • 8175

C#-Handler 技术介绍

最近接触到了.Net的Handler技术,百度到了这篇介绍的比较详细的文章,虽说已经比较早了,但很多东西还是有价值的。 VS2010添加该文件的方法:Web项目中,添加新项目,Visual C#,W...
  • shellching
  • shellching
  • 2013年02月22日 16:37
  • 7764

winform制作的精美时钟

参考了好多资料,终于做了一个winform时钟出来,效果图如下: 1,首先在winfrom项目中添加了一个用户控件ClockControl,实现过程可见代码注释,代码如下: u...
  • gdjlc
  • gdjlc
  • 2013年03月08日 17:02
  • 2953

handel c参考论文

  • 2011年06月14日 18:14
  • 2.04MB
  • 下载

新一代硬件描述预言Handel-C简介

  • 2018年01月05日 19:11
  • 14.84MB
  • 下载

Handel-C详细介绍

  • 2012年05月14日 12:12
  • 2.47MB
  • 下载

GNU ARM汇编--(六)s3c2440的时钟控制

前面几篇利用GNU ARM汇编控制LED以及ARM的中断处理的设计,对ARM汇编以及体系结构有了一定的认识.后面的汇编学习会结合具体的芯片进行,一个为了更灵活熟练的使用汇编,二也是为了通过学习一款具体...
  • RubyBoss
  • RubyBoss
  • 2013年05月11日 21:20
  • 585

GNU ARM汇编--(六)s3c2440的时钟控制

GNU ARM汇编--(六)s3c2440的时钟控制
  • yongbudl2012
  • yongbudl2012
  • 2014年06月02日 18:31
  • 392

S3C2440A时钟控制逻辑

 时钟控制逻辑 时钟控制逻辑决定时钟源是PLL还是外部时钟。当PLL配置为新的的频率值,时钟控制逻辑将禁止FCLK,直到经过PLL锁定时间后PLL输出稳定。时钟控制逻辑同样作用于上电复...
  • liu454638324
  • liu454638324
  • 2015年07月22日 22:58
  • 772
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Handel-C中时钟控制
举报原因:
原因补充:

(最多只允许输入30个字)