FPGA程序中组合逻辑和时序逻辑的运用.docx_第1页
FPGA程序中组合逻辑和时序逻辑的运用.docx_第2页
FPGA程序中组合逻辑和时序逻辑的运用.docx_第3页
FPGA程序中组合逻辑和时序逻辑的运用.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FPGA程序中组合逻辑和时序逻辑的运用FPGA程序中组合逻辑和时序逻辑的运用版本记录表作者版本号日期修改内容王长友V1.00.a2016.05.28第一次创建1、时序逻辑以及组合逻辑使用问题在编写程序中关于时序的控制中,我们经常会遇到关于组合逻辑和时序逻辑的许多问题,最典型的是组合逻辑和时序逻辑的混合使用,导致程序中的时序可控性降低,调试起来让我们很头疼。2、组合逻辑以及时序逻辑的使用分析为此分析一下组合逻辑和时序逻辑的使用来加深对这两种逻辑的使用是有必要的。组合逻辑适用于门级建模以及数据流建模,其开始于assign,依赖于各种操作符(算数、逻辑、关系、等价、按位、缩减、拼接、移位、重复、条件等操作运算符)。时序逻辑适用于行为级建模,其使用一般建立在时钟之上,以always(*)或initial语句开始,使用电平敏感的时序控制机制,运用行为语句:ifelse条件语句、case多路分支语句、while循环、for循环、repeat循环、forever循环等,又分为并行块以及顺序块等。在使用中我们会使用单纯的时序逻辑,单纯的组合逻辑,或者两种逻辑混合使用来建立我们的整个模块系统以及逻辑控制。但是不同的使用方式会带来不同的问题,当然这都是建立在各自逻辑的使用性能的基础上的。3、实例分析以及解决方案下来将会简单的举几个例子来说明义下一些会遇到的问题:1、 单纯的时序逻辑一般的程序设计都是建立在时钟之上的的可控低速数据传输的操作,因此明了的时序控制可以是我们的程序的运行具有很高的可操作和控制性。如下图:使用确认的时序,我们可以很明确的知道,我们的数据的改变,很容易控制并改变。2、 单纯的组合逻辑组合逻辑,在数据传输工程中的使用,可以实时的检测到数据流的变化。如图:3、 组合逻辑和时序逻辑的混合使用在程序中使用组合逻辑可以节省逻辑资源 ,但是组合逻辑使用时要注意,使用组合逻辑生成的信号,如果再使用时序逻辑去判定,或者作为触发条件时会有信号但是触发不到的情况。因为组合逻辑建立的信号不一定符合时序逻辑,他的信号宽度可能无法满足时序中的建立时间和保持时间,从而在使用chipscop调试过程中可以看到有信号,但是不能执行在此信号为触发条件的语句和逻辑。如下: assign temp_0 = (!arm_cs)&( !arm_ce)&(addr = 16h2200)?0:1;always(posedge clk, negedge reset_n)begin if(!reset_n)begin temp_1 = 0; end else begin temp_1= temp_0; end end assign r_temp = temp_0&(! temp_1_re); assign f_temp = temp_1&(! Temp_0_re);因此建议,使用组合逻辑产生的信号作为触发信号时,为保证所得到的触发条件可靠。最好将其延时两拍后,再作触发信号;或者在产生触发信号源时就是用时序逻辑,可以保证所得到的信号是可以满足时钟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论