0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

教你如何用时钟操控电路

电子工程师 来源:未知 作者:工程师曾暄茗 2018-09-22 15:32 次阅读

· 时钟控制执行顺序·

上文解释了DL程序的并行性,但在设计中需要像C/C++语言的串行控制功能,如先接收外部配置指定,然后接收数据并完成模块内部配置,再将配置结果反馈到外部,这需要通过时间的精确定位来获取严格的先后关系。

那么怎么来实现呢其实很简单,假设全部事件需要5个时钟周期,那么利用一个周期为5的循环计数器来实现。在计数器为1的时候,完成事件1;在计数器为2的时候,完成事件2:……如此循环即可。总结起来就是按照时钟节拍来完成串行控制。当然,这样的电路在FPGA资源的利用上是存在浪费的,因为在执行事件1,用于执行事件2,3,4,5的逻辑处于等待状态,但其却始终占用着逻辑资源,也就是这部分电路没有使能,但是依然存在于FPGA内部。

· 实例分析·

请看如下代码,建议手动输入到ise里面,动手综合后看看实现的RTL图,看懂电路原理

moduleclk_module(clk,reset,a1,y1,y2);

inputclk;

inputreset;

input[7:0]a1;

output[7:0]y1,y2;

reg[7:0]y1,y2;

reg[1:0]cnt;

always@(posedgeclk)begin

if(!reset)begin

cnt<= 0;  

y1<= 0;  

y2<= 0;  

end

elsebegin

if(cnt==2'b11)

cnt<= 2'b00;  

else

cnt<= cnt + 2'b01;  

//------------//

case(cnt)

2'b00:begin

y1<= a1 + 2'b01;  

y2<= y2;  

end

2'b01:begin

y1<= y1;  

y2<= y1 + 2'b01;  

end

default:begin

y1<= y1;  

y2<= y2;  

end

endcase

end

end

endmodule

上述代码综合后RTL图如下,浅蓝色圆圈圈住的是生成的3个加法器,就是计算cnt和y1,y2的3个加法器。黄色方框里面的是触发器,负责将结果输出和反馈到加法器输入。

仿真的波形图如下图,可以看出,每4个时钟周期计算一次结果,y1永远比y2提前一个时钟周期出结果,y1的值永远在捕捉到cnt=0的一个上升沿更新,y2永远在捕获到cnt=1的上升沿更新。这也是造成y1提前一周期的原因,所有的状态翻转都是根据cnt的状态变化来的,而cnt的变化是时钟节拍决定的。大家理解好这个例程,也就明白了如何用时钟操控电路,按照你的想法去运行,同时学会了一段式状态机的应用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7596

    浏览量

    135970
  • C++
    C++
    +关注

    关注

    21

    文章

    2103

    浏览量

    73461

原文标题:面向硬件的设计思维--时钟是电路的实际控制者

文章出处:【微信号:HaveFunFPGA,微信公众号:玩儿转FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    时钟树优化与有用时钟延迟

    时钟树优化与有用时钟延迟在 “后端时序修正基本思路” 提到了时序优化的基本步骤。其中,最关键的阶段就是时钟树建立。
    发表于 10-26 09:29 4383次阅读
    <b class='flag-5'>时钟</b>树优化与有<b class='flag-5'>用时钟</b>延迟

    FPGA的设计中的时钟使能电路

    时钟使能电路是同步设计的重要基本电路,在很多设计中,虽然内部不同模块的处理速度不同,但是由于这些时钟是同源的,可以将它们转化为单一的时钟
    的头像 发表于 11-10 13:53 5424次阅读
    FPGA的设计中的<b class='flag-5'>时钟</b>使能<b class='flag-5'>电路</b>

    【RA系列】用时钟频率精度测量电路进行时间校验

    【RA系列】用时钟频率精度测量电路进行时间校验
    的头像 发表于 11-25 08:06 542次阅读
    【RA系列】<b class='flag-5'>用时钟</b>频率精度测量<b class='flag-5'>电路</b>进行时间校验

    如何看时序图,如何用时序图

    如何看时序图,如何用时序图?求一些详细的资料。
    发表于 01-21 12:29

    教你何用DSP驱动LCD彩色液晶

    `教你何用DSP驱动LCD彩色液晶,DSP在手持设备上的应用。`
    发表于 08-19 10:01

    请问一下STM32如何用时钟源来产生时钟

    请问一下STM32如何用时钟源来产生时钟
    发表于 11-24 07:48

    快速跳频无线电台用时钟

    快速跳频无线电台用时钟 要使“极好”的跟踪干扰台失去作用,要求跳频速率
    发表于 11-24 12:42 1008次阅读
    快速跳频无线电台<b class='flag-5'>用时钟</b>

    手把手教你做彩铃电子时钟--第3章

    手把手教你做彩铃电子时钟
    发表于 11-14 17:10 6次下载

    手把手教你做彩铃电子时钟---第4章

    手把手教你做彩铃电子时钟
    发表于 11-14 17:09 12次下载

    手把手教你做彩铃电子时钟---第9章

    手把手教你做彩铃电子时钟
    发表于 11-14 17:03 10次下载

    手把手教你做彩铃电子时钟---第11章

    手把手教你做彩铃电子时钟
    发表于 11-14 17:02 11次下载

    手把手教你做彩铃电子时钟---后语

    手把手教你做彩铃电子时钟
    发表于 11-14 16:54 6次下载

    手把手教你做电子时钟---前言

    手把手教你做彩铃电子时钟
    发表于 11-14 16:53 11次下载

    如何使用时序约束向导

    了解时序约束向导如何用于“完全”约束您的设计。 该向导遵循UltraFast设计方法,定义您的时钟时钟交互,最后是您的输入和输出约束。
    的头像 发表于 11-29 06:47 2977次阅读
    如何使<b class='flag-5'>用时</b>序约束向导

    何用时钟振荡器产生稳定的100hz或1hz的时钟信号?

    何用时钟振荡器产生稳定的100hz或1hz的时钟信号? 时钟信号是电子系统中至关重要的组成部分,用于同步各种信号和操作。它需要稳定、准确、可靠地工作,以确保系统性能。时钟信号的产生可
    的头像 发表于 10-25 15:07 1740次阅读