tag 标签: fpga

相关帖子
相关博文
  • 2020-2-15 16:38
    1007 次阅读|
    0 个评论
    基于SPARTAN6+DDR3+USB3开发板的DDR3读写实例4_TEST工程的约束文件修改
    前面生成了test工程,用于测试DDR3。在实际下载测试前,还需要修改一下exapmle_top.ucf约束文件。以下记录了修改的要点: 一、修改文件exapmle_top.ucf的第23行,修改VCCAUX的供电电压,从2.5V修改为3.3V,如下: 二、修改文件exapmle_top.ucf的第58行,输入晶振的周期修改为20nS。电路板上设计为单端晶振,3.3V供电,频率为50M。 三、修改文件exapmle_top.ucf的第74、75行,处理两个关键信号error和calib_done所在BANK的供电电压,修改为3.3V。另外,这两个信号实际连接到了W20和W22引脚上,也需要根据硬件电路板对应修改一下,如上面76、77行。 四、修改主文件exapmle_top.v的148行时钟相关部分。这部分内容比较复杂,需要熟悉ug388的时钟及PLL部分,帖图如下 : 上图中左侧是差分时钟输入的,先经过一个IBUFGDS原语缓冲,再接到PLL输入端。实际硬件电路板为单端时钟,不是差分时钟,这部分可以省略。PLL输出有三路,分别为CLKOUT0、CLKOUT1和CLKOUT2,前两个时钟经过BUFPLL_MCB后,生成2倍速的sysclk_2x和sysclk_2x_180,这是MCB工作的两个主要时钟。假定DDR3时钟频率为312.5M,2倍速为312.5M*2=625M。 具体修改如下 : 上图中的汉字注释部分,对于MCB用到的几个时钟已经说明的很清楚了,右下部分是出自于ug388中的第39面。 经过以上修改, 工程test已经和实际硬件电路板对应起来了,程序可以实际下载到电路板上运行了。 test工程的具体代码分析,见后面的文章。 良子USB,20200215 专注USB3.0、FPGA、PCIE、定制UVC摄像头 QQ:392425239
  • 2020-2-15 16:33
    998 次阅读|
    0 个评论
    基于SPARTAN6+DDR3+USB3开发板的DDR3读写实例3_TEST工程建立及测试
    一、前面通过MIG生成了DDR3的IP核,同时生成了一个用于测试的工程test 。只不过这个test工程比较晦涩,并不是所见即所得,还得经过一些隐秘的步骤,才能呈现出来。前面生成IP核后,在ddr3文件夹内生成了1个mig_39目录,以及一些文件,如下图:其中有个mig_30_readme文本文件,需要看一下。 二、打开目录mig_39,里面含有3个目录,如下: 1、docs目录,里面含有两个DDR3开发的文档UG416和UG388。这两个文档需要仔细看,所有SPARTAN6与DDR3相关的内容都在这两个文档里。需要至少看十篇。 2、example_design目录,MIG提供的测试例程test,或者叫traffic generator。这里主要就是实际测试这个test工程。 3、user_design,这个目录是用户需要集成到自己的项目中的。 三、开始创建test工程。打开如下的目录,里面根本没有test工程的影子。先找到两个批处理文件,如下 ,直接双击不行,需要在命令行下进行, 四、打开ISE14.7自带的64位命令行程序,如下: 五、输入如下DOS指令,定位在前面的目录C:\ddr3\mig_39\example_design\par下,再运行create_ise.bat文件, 六、经过一段时间,test工程成功建立。如下, 七、回头再看C:\ddr3\mig_39\example_design\par目录,test工程已经出现了,如下 : 八、直接双击打开这个test工程,如下: 如上的test工程可以正常编绎成功。 1、上图中左侧的文件管理窗口,已经包含了.ucf约束文件,待会会进一步修改这个文件,以便和我的硬件开发板对应; 2、接下来会用CHIPSCOPE软件与实际电路板连接,观测实际的波形; 九、打开.ucf约束文件,修改了LED引脚以及时钟相关部分,再重新编绎工程,成功后连接电路板。 (具体修改部分见下一篇文章。) 十、连接成功后,直接点Trigger运行,成功如下: 十一、这里重点关注DDR3初始化是否成功的信号c3_calib_done。DDR3初始化成功,c3_calib_done信号为高;DDR3初始化失败,c3_calib_done信号为低。打开Trigger setup窗口,设置c3_calib_done为0,看初始化是否失败?程序运行后,没有触发到任何波形,说明DDR3初始化成功。 十二、进一步放大c3_p0_wr_data信号,如下,可以看到数据非常有规律,说明成功。 至此,DDR3已经正常运行了。后面,会对这个test工程详细分析。 良子USB,20200215 专注USB3.0、FPGA、PCIE、定制UVC摄像头 QQ:392425239
  • 2020-2-15 16:25
    958 次阅读|
    0 个评论
    基于SPARTAN6+DDR3+USB3开发板的DDR3读写实例2_MIG生成DDR3的IP核
    一、前面介绍了含有DDR3的硬件开发板,以下内容都是基于这块FGA 开发板所进行的,生成的DDR3控制器直接可以下载到硬件电路板中实际验证,观察结果,加深理解学习。SPARTAN6芯片内部含有控制DDR3的硬核MCB,这个硬核还需要从软件上进行管理,这个软件即是MIG,以下是通过MIG生成DDR3的IP核的过程。生成过程主要是通过帖图体现的,为了创建一个可以参考的实例,帖图会比较详细,适合刚入门的使用,高手可以忽略。 二、如下图:先启动ISE14.7的IP核生成器CORE Generator, 二、IP核生成器CORE Generator启动后如下: 三、在IP核生成器CORE Generator里先创建一工程,如下: 四、在C盘里创建一文件夹ddr3,文件名为corgen,如下, 五、选择硬件电路板对应的FPGA型号,在Part选项中,选择SPARTAN6,XC6SLX45,封装为484引脚的,速度等级为-2的,如下: 六、切换Generation选项中,Verilog开发语言,如下: 七、按下图找到MIG的IP核,双击打开, 八、启动MIG画面如下,点下一步, 九、创建一个新的IP核 ,名字为mig_39,如下: 十、这一步选择兼容的FPGA型号,这里不作任何选择,直接下一步, 十一、这里选择BANK3上的MCB控制器, 十二、这里设置DDR3的时钟频率,工作在667M,一半就是333.3M;DDR3的实际型号为MT41J64M16JT-125,64M*16的, 十三、这里默认的就可以,直接下一步, 十四、选择一个128位宽的双向接口,寻址方式为ROW_BANK_COLUMN方式, 十五、默认、下一步, 十六、这里选择DDR3上电后校准的几个引脚,要对照实际的硬件原理图设置,RZQ电阻选Y2,ZIO引脚选W3,使能DEBUG调试,后面就用CHIPSCOPE调试,选择单端时钟,直接点一下步, 十七、上面的硬件设置,是和我的硬件电路板对应的,如下: 十八、MIG设置总体完成了,这一步是汇总相关的信息,直接下一步, 十九、点同意,点下一步, 二十、点下一步, 二十一、点Generate生成IP核, 二十二、IP核成功生成,点Close,结束。 至此,DDR3的IP核生成完毕。 下一篇将生成的TEST工程下载到实际硬件电路板中运行一下。硬件电路板如下: 良子USB,20200214 专注USB3.0、FPGA、PCIE、定制UVC摄像头 QQ:392425239
  • 热度 9
    2019-9-4 22:10
    3003 次阅读|
    5 个评论
    小梅哥FPGA时序分析笔记(6.2)深入现象看本质——庖丁解牛之FPGA内数据传输模型
    通过上一节,我们了解了 FPGA 内部数据的传输形式,接下来我们就可以根据上一节的内容来总结一下 FPGA 内部的数据传输模型了。 时钟和数据传输路径 通过上一节内容中,我绘制的那个 FPGA 内部数据在逻辑单元间的传输模型,我们可以提取归纳出一个通用的 FPGA 内部信号传输模型,如下图所示: 根据上图,可以概括出以下几个关键点: 1、 数据总是从一个 D 触发器( REG1 )传到另一个 D 触发器( REG2 ),我们称数据发出 D 触发器为源寄存器,数据接收 D 触发器为目的寄存器 2、 数据在传输过程中,可能参与多次组合逻辑变换 3、 数据在传输过程中,需要经过可编程互联线传递 4、 分析信号在两个寄存器之间的传递时,需要保证这两个寄存器的时钟信号是同源时钟。 针对第四点,需要补充的是,虽然通过上图可以看到,源寄存器和目的寄存器的时钟为同一个,那为啥要说是同源时钟,不说同一个时钟呢。其实,相信很多人也都知道,在实际使用中,有可能两个寄存器的工作时钟信号并非同一个。典型的例如一个 PLL 输出的两个时钟分别作为目的寄存器和源寄存器的时钟,这种情况下看似时钟不同,但是实际上在分析时,起点都是从 PLL 的时钟输入端开始,而从时钟输入到 PLL 的两个输出时间会算入时钟路径,因此本质上还是同一个时钟,所以上面说的是要求两个时钟是同源即可。 D 触发器基本概念 好了,到此为止,我们已经引出了 FPGA 时序分析的基本模型,接下来,就有必要聊聊,这个模型里面的哪些内容和参数会影响到我们的设计质量。 在正式讲解这个模型之前,我们还是先来回顾一下什么是 D 触发器,下图为一个 D 触发器的典型符号图。 D 触发器概念: 1. D 触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。 2. D 触发器在数字系统和计算机中有着广泛的应用。触发器具有两个稳定状态,即 "0" 和 "1" ,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。 3. D 触发器在 CP( 时钟脉冲 ) 的前沿(正跳变 0 → 1 )发生翻转,触发器的次态取决于 CK 的脉冲上升沿到来之前 D 端的状态,即次态 =D 。因此,它具有置 0 、置 1 两种功能。由于在 CK=1 期间电路具有维持阻塞作用,所以在 CK=1 期间, D 端的数据状态变化,不会影响触发器的输出状态。 在上面的介绍中,我们需要提取出以下几个关键信息: 1、 D 触发器具有 2 个稳定状态“ 0 ”和“ 1 ”,在时钟( CK )的上升沿, D 端的数据被更新到 Q 端。 2、 在时钟的高电平期间, D 端的数据变化。 Q 端的数据不会跟着变化。 针对第一条信息,我们可以知道 D 触发器在时钟的上升沿时将 D 端的数据存起来,所以,要想保证 D 端的数据能被正确的存起来,需要确保 D 端的数据在时钟上升沿时刻是稳定的,不能处于变化时期。假如在时钟上升沿的那个点,刚好 D 端的数据也在变化,那就真的不知道存储起来的究竟是 0 还是 1 和。而且,理想的 D 触发器,我们认为时钟信号从 0 到 1 的变化所需时间无限短,那么这个上升沿时间究竟是多长呢?理想的时钟上升沿可以被认为是从 0 到 1 这个变化的过程所需的时间是无限短的,但是实际在电路中,这个变化还是需要一定的时间的,不可能无限短。而且 D 触发器也不是真的就只需要在时钟上升沿的那一个时间点需要 D 端的数据是稳定即可,从实际的器件工作情况来看,任何一个 D 触发器要想在时钟的上升沿将 D 端的数据寄存并输出到 Q 端,有 2 个关键的时间参数需要保证。 建立时间,保持时间,输出延迟 为了更加直观的说明这个问题,还是先画一张图说明。 对于实际的 D 触发器来说,为了保证在时钟的上升沿能够正确的将 D 端的数据寄存并输出到 Q 端,需要满足以下两点: 1. D 端的数据必须在时钟上升沿到来之前的一定时间内就已经保持稳定,该时间被称为 D 触发器的建立时间 ( Tsu ) 2. D 端的数据必须在时钟上升沿到来之后的一定时间内继续保持稳定,该时间被称为 D 触发器的保持时间 ( Th ) 如果不能同时满足上述两个条件,那么 D 端的数据就可能无法正确的被寄存并输出至 Q 端。 同时,对于 D 触发器来说, D 端的数据也不可能会在时钟上升沿出现的那一刻就立即更新到 Q 端,从时钟的上升沿到 D 端的数据稳定出现在 Q 端,也有一个时间,该时间称为寄存器的时钟到输出延迟 ( Tco ) 为了防止有人钻牛角尖问为啥会是这样的情况,这里统一回复:这就是 D 触发器的实际电路结构决定的,你也可以认为是通过测量手段测量出来的经验值。而且,从更深次的来说,如果 D 触发器没有这个特性,而是真正理想的特性,那么 D 触发器将没有存在的意义。 FPGA 内数据传输典型时序 好了,通过上面的介绍,相信大家已经对 D 触发器的工作特性有了一个了解了。那么接下来,我们就继续来看,在 FPGA 中,信号从一个寄存器传到另一个寄存器时,其典型时序是哪样的。 下图就是 Altera 的手册中 FPGA 典型的数据从寄存器到寄存器的传输时序图。 按照惯例首先我们还是对该图进行分析,提取出几个我们应该关心的问题。 首先看时钟,上图中可以看到,两个寄存器的时钟脚都是连在一起的,且来自同一个外部 Pin ,只是,从外部 pin 到寄存器 1 ( REG1 )和寄存器 2 ( REG2 )的时钟端口,中间都是有一段路要走的。既然要走一段路,就必然需要花费时间,所以图中也可以看到,从外部 pin 到寄存器 1 ( REG1 )的时间被标记为了 Tclk1 ,同样的,从外部 pin 到寄存器 2 ( REG2 )的时间被标记为了 Tclk2 ,这两个时间都是真实存在的,且并不一定相等。 可能到这里,有些同学就要质疑了,不是说 FPGA 的时钟信号,如果走全局时钟网络,那么到达每一个寄存器的时间都是几乎一样的吗?其实,这种说法是不严谨的,全局时钟网络也不能保证该时钟到达每个寄存器的时钟脚的延迟都是严格一样的,只能保证到达各个寄存器的延迟都尽量的小,且时钟质量尽量的高。至于到达每个寄存器的延迟,肯定是存在,且没有任何一个地方能够保证是完全相同的,只是说可能差距不大。既然现在是在分析微观的信号传输,所以这些微小的差距也都是需要考虑的。 其次看数据传输路径,一开始,数据存在于 REG1 的 D 端口上,当时钟上升沿到达 REG1 时,经过 Tco 时间, D 端数据才会到达 REG1 的 Q 端。 最后, REG1 的 Q 端的数据还需要经过 FPGA 内部的可编程连线,还有可能需要参与各种逻辑运算,才能到达目标寄存器,也就是 REG2 的 D 端,在从 REG1 的 Q 端传到 REG2 的 D 端过程中经过的各种连线和组合逻辑功能,也都是需要耗费时间的,这些时间在分析时统称为组合逻辑延迟,标记为 Tdata 。 那么,在这样的传输模型中,这些参数又将怎样影响我们的设计呢?为了不让大家越看越迷糊,这里先按照笔者平常调试工程时候的感觉,使用典型值做一个假设的情形。 假设: a) CLK 信号的频率为 200MHz ,既周期为 5ns b) REG1 的 Tco 时间为 0.5ns c) REG1 的 Q 端到 REG2 的 D 端,组合路径延迟 Tdata 为 6ns d) REG2 的建立时间 Tsu 为 0.8ns 那么这个设计,能够保证 REG2 正确的接收 REG1 发出的数据吗? “ 不能 ” ,可能马上就会有人脱口喊出这个答案。理由为: 1. 从时钟到达 REG1 的时钟端口,到 REG1 的 D 端数据能够出现在 Q 端,首先要经过寄存器输出延迟 Tco , 2. 然后数据再从 REG1 的 Q 端传到 REG2 的 D 端需要经过组合逻辑延迟 Tdata , 3. 再然后,前面已经说了,要想 REG2 能够在时钟上升沿时寄存 D 端口上的数据,需要数据在时钟上升沿到来之前最少 Tsu 时间就稳定下来, 4. 而根据上述假设, Tco + Tdata + Tsu 的时间为 7.3ns ,已经远远超过了一个时钟周期 5ns ,也就是说,当时钟上升沿到达 REG2 的时钟端口时,数据还没有就绪,所以无法被正常接收 ” 。 上述回答有理有据,貌似很正确,不瞒大家说,我在很长一段时间内,也是这样认为的。但是,上述分析却忽略了关键的一点,那就是时钟信号传输也是有延时的。接下来,我们把上述假设完善一下:假设时钟信号从外部 pin 传输到 REG1 的时钟端需要 1ns ,而传输到 REG2 时钟端需要 3.5ns ,那么这个时候,这个设计能够保证 REG2 正确接收 REG1 发出的数据吗? 答案是肯定的,此种情况下, REG2 就能正确接收 REG1 发出的数据了,因为真实的传输路径中,不仅有数据传输延迟,还有时钟延迟,而时钟延迟,又是大家在分析时候非常容易忽略的一类。毕竟大家在刚开始学习 FPGA 的时候,一直潜移默化的认为,时钟信号到达所有寄存器的时间都是一样的。所以,在这里,通过这样一种打脸的方式,希望大家能够纠正这种错误的认识,在分析信号传输的时候,不仅要分析数据传输延迟,还要分析时钟传输延迟。 好了,借着强调时钟延迟重要性的便道,又凑了大半页篇幅。接下来,我们终于可以用最有说服力的波形说话了。 上图很好的展示了我们前面分析的模型中各个节点的时序波形。 l CLK 认为是时钟输入脚输入的时钟信号。 l REG1.CLK 为 CLK 到达 REG1 的波形,相对于 CLK ,有一个延迟,设为 Tclk1 。 l REG1.Q 为 REG1 的输出端数据值,从 REG1.CLK 上升沿到来,到其值更新并稳定下来,存在一定的延迟,该延迟值名为 Tco 。 l REG2.D 为 REG2 的输入端 D 端口上的数据波形,该信号由 REG1.Q 经过组合逻辑和内部连线传递后到达,因此 REG1.Q 到达 REG2.D 这个时间是数据传输时间,为 Tdata 。 l RERG2.CLK 是 CLK 到达 REG2 的波形,相对于 CLK ,有一个延迟,设为 Tclk2 。 好了,到此时,相信又有人要问了,嗯,不错,你说的我都明白了,那么,然后呢,你说的这一些,与我的设计和约束有什么关系呢?难道我需要用你这个图来指导我约束?我要约束什么呀?这个嘛,说来话长。欲知后事如何,且听下回扯淡。
  • 热度 12
    2019-9-1 21:28
    4641 次阅读|
    2 个评论
    小梅哥FPGA时序分析笔记(6.1)深入现象看本质——庖丁解牛之FPGA可编程原理
    上一次发博客,已经是2个月前了,这中间两个月,干了件很有意义的事情,尤其是对于自己来说,感觉学到了非常多的知识和经验,每天都很忙,忙到没时间逛网站博客,终于忙完闲下来了,连载的事情可不能忘,终于可以书接上回了。 经过前面的几节内容,相信大家已经对时序约束的魅力有了一个大致的印象,而且也都认同了时序约束对于保证一个系统能够可靠运行起着至关重要的作用。那么,为什么时序约束能够解决这些问题?时序约束的原理又是什么?我们又该如何正确的去进行时序约束,以达到想要的性能呢?接下来,我先把我学习时序约束的时候对于时序的理解笔记分享出来。 要把这些问题都研究清楚,不能急,我们首先得知道, FPGA 中是如何实现相应的逻辑功能的。 FPGA 可编程原理 FPGA 是如何实现现场可编程的?大家可能都知道, FPGA 是基于查找表原理实现任意组合逻辑的,那么时序逻辑呢?大家又都知道, FPGA 中有很多的 D 触发器,既然有了 D 触发器,加上时钟,就能实现时序逻辑了。那么不同的 D 触发器之间怎么连接起来呢?答案就是内部连线。 FPGA 内部有大量的长的短的连线,这些连线能够将不同的 LE 的输入和输出连接起来。这样,假设每个 LE 实现一个单独的功能,然后多个 LE 的输入输出按照一定的规则使用连线连接起来,就能实现复杂的功能了。光写文字估计大家越看越迷糊,那我就画图吧。 上图为一个最最基本的 FPGA 架构,且不包括 I/O 块。通过上图右半部分可以看到,一个 FPGA 中以阵列的形式分布着很多的小逻辑块,这个块就是我们熟知的逻辑单元( Logic Elements ,简称 LE ),这些所有的小块共同构成了 FPGA 的可编程逻辑门阵列,而为了把不同的逻辑单元连接起来, FPGA 中分布着大量的可编程互联资源,通过对这些可编程互联资源编程,就能够把各个不同的逻辑单元的输入输出连接起来,在上图的上半部分就演示了部分互联资源将多个逻辑单元按照一定的规则连接了起来。这样看起来,是不是和我们的电路板模型非常的相似,在电路板上有各种芯片,每个芯片都有很多的管脚,通过 PCB 板走线把这些管脚按照正确的方式连接到一起,就能够形成一个可以实现特定功能的电路板了。 那么,上面说到的逻辑单元又是什么呢?在上图的左半部分,绘制了一个逻辑单元的内部示意图(简化版),可以看到,一个逻辑单元由一个查找表( LUT )和 D 触发器( DFF )组成,当然,真实的逻辑单元里面可能还包含了很多其他辅助的电路,这里省略。 LUT 有 4 个输入端口( a 、 b 、 c 、 d ),一个输出端口( o )。 LUT 的输出 o 可以送给 D 触发器的数据输入端口 D ,也可以不经过 D 触发器直接输出。当然了,实际上 D 触发器的输入也可以不来自于 LUT 的输出,而来自于其他逻辑单元的输出。不经过 D 触发器输出,那这个 LE 实现的就是一个纯组合逻辑,经过 D 触发器输出,那这个 LE 实现的就是一个时序逻辑。 一个 LUT 里面可以实现各种组合逻辑,与门、或门、非门等等, LUT 里面实际有 16 个 1bit 的基于 SRAM 结构的存储器,能够对应 a 、 b 、 c 、 d 四个输入的逻辑组合的所有可能, Quartus 通过向这 16bit 的存储器里写入不同的初始值,就能使 a 、 b 、 c 、 d 四个输入在不同的状态下输出不同的逻辑结果,从而实现使用一个 LUT 实现各种组合逻辑的功能。 既然 FPGA 已经能够实现各种的基本逻辑门功能了,而且还有 D 触发器能够实现时序逻辑功能,那么,要实现复杂逻辑功能,无非就是把众多的基本逻辑功能联合起来,从而达到复杂逻辑功能的目的。所以,我们可以认为, FPGA 中实现复杂的逻辑功能,大概就是下面的样子(当然下图所示的逻辑远远算不上复杂逻辑,只是我自己简画的一个 FPGA 内部数据在逻辑单元间的传输模型图)。 我们先对上图进行一个简单的分析,从图中可以归纳出以下信息: l 整个设计有 6 个输入信号( a, b, c, d, e, clk )一个输出信号( out ) l 5 个输入信号 a, b, c, d, e 进入设计后先分别使用一个 LE ( LE0~LE4 )中的 D 触发器打了一拍(设经过 D 触发器后的信号分别为 r_a, r_b, r_c, r_d, r_e ) l D 触发器输出的 r_a, r_b, r_c, r_d 信号进入一个 LE ( LE-5 )中的 LUT 进行了相关的逻辑运算后直接输出,没有经过 LE 的 D 触发器 , 。设 LUT 的输出信号名称为( w_g ) l LE-5 的输出信号 w_g 与 LE-4 的输出信号 r_e 再送入一个 LE ( LE6 )中进行逻辑运算, LUT 的运算结果输出命名为 w_h l w_h 进入 LE6 的 D 触发器,经过该触发器寄存一拍后输出,输出信号命名为 r_o 所以,通过上图我们可以清楚的看到, FPGA 中各种复杂的逻辑,都是使用基本的逻辑单元( LE )构建各种特定的简单的组合逻辑或时序逻辑功能,然后使用片上的可编程互联线资源将这些独立的逻辑功能连接起来实现的。事实上,上图逻辑,可以对应下述使用 Verilog 描述的电路: module logic ( input clk , input a , input b , input c , input d , input e , output out ); // 定义 5 个内部寄存器 reg r_a , r_b , r_c , r_d , r_e ; wire w_g , w_h ; // 输出寄存器 reg r_o ; // 将 IO 输入信号首先使用 D 触发器寄存 always @( posedge clk ) begin r_a <= a ; r_b <= b ; r_c <= c ; r_d <= d ; r_e <= e ; end // 第一级组合逻辑 assign w_g = r_a & r_b | r_c | r_d ; // 第二级组合逻辑 assign w_h = r_e | w_g ; // 寄存器输出 always @( posedge clk ) r_o <= w_h ; // 将寄存器输出信号连接到输出端口 assign out = r_o ; endmodule 当然了,不是说上面的图只能对应这一段代码,毕竟 LUT 内部实现的组合逻辑功能是可以不同的,而组合逻辑功能不同,对应实现的功能也就不一样了。上述代码只是结构上符合上图。 好了, FPGA 的可编程原理讲到这里就 Over 了,这里所谓的 Over ,不是说知识点讲完了,而是有了这些内容,已经差不多可以辅助我们进行下一步的传输分析了,更多 FPGA 可编程原理性的知识,这里暂时没用到,也就不介绍了。 嗯哼,一本正经的敷衍完事了。下楼买泡面去罗。呲溜。
相关资源
  • 所需E币: 4
    时间: 2019-12-28 20:41
    大小: 4.72MB
    上传者: 二不过三
    适用于XilinxFPGA的模拟设计技术指南2008第一册AnalogDesignGuideforXilinxFPGAswww.national.com/xilinx2008Vol.1AnalogSolutionsforFPGAs........2DesignTools...................................3PowerWiseSolutions............4-5DataConversion......................6-12Amplifiers................................13-23TemperatureSensors............24-27Interface..................................28-40SDIProducts...........................41-4210/100EthernetPHY..............43-44AnalogSolutionsforFPGAsNationalSemiconductor,aleaderinhigh-performance,energy-efcientsolutions,offersabroadproductportfoliothatsup-portsXilinxFPGAs.Nationalprovidesanalogsignalconditioning,converters,andserialdata-transfersolutio……
  • 所需E币: 5
    时间: 2019-12-28 20:41
    大小: 615.44KB
    上传者: 978461154_qq
    适用于XilinxFPGA的电源管理单元FlexiblePowerManagementUnitsforLow-PowerXilinxFPGAsI2CInterfaceProvidesOutputVoltageControlandStartup/ShutdownSequencingLP3906includes:ITwohigh-efficiencybuckDC-DCconvertersI2Linearregulators(LDO)°ProgrammableVOUTfrom0.8Vto3.3V°ProgrammableVOUTfrom1.0Vto3.5V°1.5Aoutputcurrent°±3%outputvoltageaccuracy°2MHzPWMswitchingfrequency°300mAoutputcurrents°±3%outputvoltageaccuracyLP3906allowsprogrammabilitythroughI2Cserialinterface.Availablein4mmx5mmLLP-24packaging.SchematicandLayoutTipsVCCINT=1.2V……
  • 所需E币: 3
    时间: 2019-12-28 20:41
    大小: 1.51MB
    上传者: 238112554_qq
    适用于AlteraFPGA和CPLD的电源管理设计指南PowerManagementDesignGuideforAlteraFPGAsandCPLDsFall2005Alteradevicescovered:AlsofeaturesNational’sFPGAsolutionsfor:StratixIIFPGAfamilyCommunicationsinterface,includingLVDSStratixFPGAfamilyHigh-speeddataconversionCycloneFPGAfamilyHigh-speed,low-poweranalogsignalconditioningMAXIICPLDfamilywww.national.com/see/alterafpgaNationalSemiconductorTheSight&SoundofInformationFeaturedpowerproductsLM5070Power-over-Ethernetsingle-chipsolutionFullycomp……
  • 所需E币: 5
    时间: 2019-12-28 21:36
    大小: 301.42KB
    上传者: 238112554_qq
    以网络交换调度系统FGPA验证平台为例,详细介绍了基于TPS54610的FPGA供电模块的设计.首先简要介绍了FPGA的各种供电方案及相关器件的功能和选型,然后介绍了TPS54610的主要性能,并重点阐述了基于TPS54610的FPGA供电模块的电路设计和PCB设计,其中包括电路设计和PCB设计时的注意事项以及提高系统抗干扰能力的具体措施.基于TPS54610的FPGA供电模块设计韩江涛,胡庆生,孙远(东南大学射频与光电集成电路研究所,江苏南京210096)摘要:以网络交换调度系统FGPA验证平台为例,详细介绍了基于TPS546lO的FPGA供电模块的设计。首先简要介绍了FPGA的各种供电方案及相关器件的功能和选型,然后介绍了TPS54610的主要性能,并重点阐述了基于TPS54610的FPGA供电模块的电路设计和PCB设计,其中包括电路设计和PCB设计时的注意事项以及提高系统抗干扰能力的具体措施。关键词:FPGA电源管理TPs54610’随着工艺技术的发展与市场需求,超大规模、高速、调整器占用面积较大。低功耗的新型现场可编程逻辑器件(FPGA)不断推出,给DC/DC控制器和DC/DC调整器的差别主要是没有电路设计带来极大的方便。在采用大规模FPGA的开发内置的FET。因此,设计者可以选用有特定导通电阻的系统中,供电模块的设计将直接影响到系统的稳定性,外接FET晶体管,并根据应用的需要调整电流,使设计因此设计出高效、稳定的供电模块显得尤为重要。本文具有很大的灵活性,这在需要十几甚至几十安培电流的以可扩展网络交换调度系统的FPGA验证平台为例,介……
  • 所需E币: 3
    时间: 2019-12-28 21:38
    大小: 338.52KB
    上传者: 238112554_qq
    针对Stratix系列FPGA系统电源需求情况,给出了一套基于Intersil高效三输出同步补偿稳定器的"单片"电源解决方案.根据实验数据分析与验证,该方案具有较强的可行性,且在功耗、效率及稳定性等方面都优于传统的"多片"电源方案SfrafI∥FPGA电源方案设计与验证木周毅,王绍雷,赵进创(广西大学计算机与电子信息学院,广西南宁530004)摘要:针对Stratix系列FPGA系统电源需求情况,给出了一套基于Intersil高效三输出同步补偿稳定器的“单片”电源解决方案。根据实验数据分析与验证,该方案具有较强的可行性,且在功耗、效率及稳定性等方面都优于传统的“多片”电源方案。关键词:FPGA同步补偿异相PWM软启动S雠mx系列FPGA是A1tera公司推出的面向高带宽支持多种单端和差分I,O标准,如LⅥT11.、LvCMOS、系统的可编程逻辑器件。Stratix器件具备强大的内核性SSlm、HSTL、LVDS、LvPECL、PCML等,能够实现在不同能、存储能力以及灵活的设计架构,从而为日益复杂的接口电平和协议下的高速数据传输。根据所选择的I/O系统设计争取了更短的设计周期和更快的上市时间。标准,yo∞可以设定为1.5V、1.8V、2.5V或3.3V…。I/0St枷x器件支持多种I/O标准和高速接口,提供了完善标准可按照FPGA中的块区(BANK)独立设置,因此对的时钟管理功能,有多达12个嵌入式锁相环(PIJL)和40于单一的FPGA可能会存在多个I,O电压……
  • 所需E币: 5
    时间: 2019-12-28 21:38
    大小: 330.96KB
    上传者: givh79_163.com
    通过分析观察信号协方差矩阵构成的特点,提出了一种适合FPGA实现的协方差矩阵计算方法,为多级嵌套维纳滤波器提供了更易于工程实现的方法.多级嵌套维纳滤波器中协方差矩阵计算的FPGA实现邓路宽1一,李双勋1,程翥1,皇甫堪1(1.国防科学技术大学电子与科学工程学院,湖南长沙410073;2.武警8732部队,湖南耒阳421800)摘要:通过分析观察信号协方差矩阵构成的特点,提出了一种适合FPGA实现的协方差矩阵计算方法,为多级嵌套维纳滤波器提供了更易于工程实现的方法。关键词:MSNWF协方差矩阵FPGA估计理论中的一般性问题是从观测信号石。(n)恢复表示阵元i在时间上的第.『、第歹+1、第,+2个延时矢量。未知信号磊(n)。维纳滤波器(WF)仅仅利用二阶统计特()’为转置。每个置(『)为一个36维的行矢量(参考文献性在最小均方误差(MMSE)意义下解决了这个问题。WF[5】中关于MSNWF降秩自适应处理收敛所需数据点数易于实现,因此应用广泛。然而,产生的滤波器需要计算的准则三=锄伊)。观测信号的协方差矩阵的逆。这就意味着如果观测信号输入矢量省的协方差矩阵为:铷(n)的维数很高,将使工程实现十分复……
  • 所需E币: 4
    时间: 2019-12-28 21:40
    大小: 249.61KB
    上传者: quw431979_163.com
    在Altera公司的StratixEP1S10器件中设计了以Prewitt图像边缘检测为基础的图像处理和显示系统,包括二维滤波器模块、图像VGA显示控制器、ROM存储器、FIFO缓冲器及相应的读写控制器.整个系统集成在一个芯片上,实验证明此设计方法工作效率高,处理速度快,性能稳定,可移植性好.基于FPGA的图像边缘检测系统的设计王绍雷,赵进创,周毅(广西大学计算机与电子信息学院,广西南宁530004)摘要:在Altera公司的Strat没EPlSlO器件中设计了以Pre访tt图像边缘检测为基础的图像处理和显示系统,包括二维滤波器模块、图像VGA显示控制器、ROM存储器、FIFO缓冲器及相应的读写控制器。整个系统集成在一个芯片上,实验证明此设计方法工作效率高,处理速度快,性能稳定,可移植性好。关键词:FPGAPre讲tt算子VGAQuanusII在嵌入式图形系统处理领域,图像的边缘图作为图像的一种基本特征,经常被应用到较高层次的特征描述。换剧烈。对于连续图像以菇,y),其方向导数在边缘(法线)如图像识别、图像分割、图像增强以及图像压缩等图像处方向上有局部最大值,因此,边缘检测就是求以菇,y)梯理和分析的技术中,从而可以对图像作进一步的分析和度的局部最大值和方向。对于离散图像来说,就是利用理解【11。但是图像处理的速度问题一直是很难突破的设计瓶颈。一般情况下,控制领域及数据处理领域几乎是单V/.=01茗,y)_厂(戈一1,,,),以菇,,,)_厂(并,y一1)(1)片机和数字……
  • 所需E币: 4
    时间: 2019-12-28 21:41
    大小: 352.63KB
    上传者: 238112554_qq
    基于FPGA的X射线像增强器选通电源设计基子FPGA的X射线像增强器选通电源设计李海廷,韩焱,王黎明(中北大学通信与信息工程学院,山西太原030051)摘要:针对带微通道板(MCP)的双近贴聚焦X射线像增强器普遍存在动态范围小、使用寿命短等缺点,对其电源系统进行研究并改进,从而使X射线像增强器能够更好地满足X射线检测和医学成像系统的应用要求。这种电源可以使像增强器始终产生对比度良好的高分辨率图像;同时还可以延长像增强器的使用寿命。关键词:X射线成像像增强器选通电源FPGAPWMX射线像增强器是带微通道板(MCP)的双近贴聚系统进行改进。从而使X射线像增强器能够更好地满焦X射线像增强器,一般由光电阴极、MCP和荧光屏三足X射线检测和医学成像系统的应用要求。部分组成,如图l所示。由于MCP的引入。使得它具有1X射线选通增强实现途径很多优良的性能:体积小、结构简单、图像空间分辨率高如果在X射线像增强器选通电极上不加直流高压。且畸变小、增益高、可结合性强、电磁干扰低和快门比高而代之以可以自动高速接通和切断的连续矩形脉冲高等。由于这些性能,使其在各个领域得到了广泛应用。压,则仅在脉冲持续期间才有光电子通过而轰击荧光……
  • 所需E币: 5
    时间: 2019-12-28 21:43
    大小: 191.59KB
    上传者: quw431979_163.com
    介绍一种TPC码迭代译码器的硬件设计方案,基于软判决译码规则,采用完全并行规整的译码结构,使用VHDL硬件描述语言,实现了码率为1/2的(8,4)二维乘积码迭代译码器,并特别通过硬件测试激励来实时测量所设计迭代译码器的误码率情况,提出了优化设计方案,和传统的硬件仿真方法相比大大提高了仿真效率.仿真结果证明该译码器有很大的实用性和灵活性.TPC码译码器硬件仿真的优化设计郭丽,蒋卓勤(西安通信学院,陕西西安7101()6)摘要:介绍一种仲C码迭代译码器的硬件设计方案,基于软判决译码规则。采用完全并行规整的译码结构,使用VHDL硬件描述语言,实现了码率为1,2的(8,4)二维乘积码迭代译码器,并特别通过硬件测试激励来实时测量所设计迭代译码器的误码率情况,提出了优化设计方案,和传统的硬件仿真方法相比大大提高了仿真效率。仿真结果证明该译码器有很大的实用性扣灵活性。关键词:Ⅱ,c码软判决译码外信息速代译码VHDLⅡBAOptimizeddesigIlofTurboproductcodedecoder衍thhardwaresimulationGUOⅡ,J【ANGzhuoQiⅡ(](i’衄……
  • 所需E币: 3
    时间: 2019-12-25 17:43
    大小: 16.67KB
    上传者: quw431979_163.com
    BusTranslationDesignUsingFPGAs……
  • 所需E币: 5
    时间: 2019-12-25 17:44
    大小: 22.9KB
    上传者: givh79_163.com
    数字锁相环……
  • 所需E币: 4
    时间: 2019-12-25 17:43
    大小: 16.7KB
    上传者: 微风DS
    UsingFPGAsfor100Mbit/secImagesetterApplication……
  • 所需E币: 3
    时间: 2019-12-25 17:43
    大小: 111.33KB
    上传者: quw431979_163.com
    通讯接口……
  • 所需E币: 4
    时间: 2019-12-25 17:43
    大小: 44.08KB
    上传者: 16245458_qq.com
    主动噪声抑制系统……
  • 所需E币: 4
    时间: 2019-12-25 17:44
    大小: 508.92KB
    上传者: 微风DS
    千兆以太网8b10b编解码……
  • 所需E币: 3
    时间: 2019-12-25 17:44
    大小: 145.14KB
    上传者: 二不过三
    ATM交换……
  • 所需E币: 4
    时间: 2019-12-25 17:44
    大小: 119.24KB
    上传者: 978461154_qq
    Antifuse外挂SRAM的用法……
  • 所需E币: 4
    时间: 2019-12-25 17:43
    大小: 107.87KB
    上传者: 二不过三
    该方案把PCI接口功能、数据处理、逻辑控制等功能集成在单芯片的FPGA中,简化了设计;ActelFPGA具有可靠性高的特点,使得产品能非常稳定的运行在工控环境中。……
  • 所需E币: 5
    时间: 2019-12-25 17:44
    大小: 87.15KB
    上传者: 238112554_qq
    步进马达控制器……
  • 所需E币: 4
    时间: 2019-12-25 17:37
    大小: 53.55KB
    上传者: quw431979_163.com
    "特点:●无传感器,基于反电动势操作。●速度控制范围5%~100%●具备SPI及SCI接口"……
广告