标题: FPGA学习日志 [打印本页]

作者: 51黑fan    时间: 2016-1-30 04:35
标题: FPGA学习日志
    使用乘积和就可以表达大部分的逻辑功能。使用两个组合逻辑来实现这些功能。AND门建立乘积项,OR门对乘积求和。在输入上可以采用非门来置反输入,以产生所需的功能。为了存储输出,或者使输出与其他输出同步,需要寄存器形式的同步逻辑。如果不需要存储器或者同步,可以旁路输出寄存器。采用TTL逻辑器件,在试验面包板上,或者印刷电路板上,用铜线把这些分立原件连在一起。把这些逻辑门和寄存器组合到一个器件中去。

    某些PAL包括了阵列反馈选项,以实现更复杂的逻辑功能,还可以完全旁路输出寄存器,以建立异步输出。

      一个复杂的数字系统设计往往是一个从算法到由硬件线连接的门级逻辑结构,再映射到硅片的逐步实现的过程。



         算法就是解决特定问题的有序步骤;数据结构就是解决特定问题的相应的模型。



          计算电路究竟是如何构成的?为什么它能有效和正确执行每一步程序?它能不能用另外一种结构方案来构成?运算速度还能不能提高?所谓计算机微体系结构就是回答以上问题,并从硬线逻辑和软件两个角度一起来探讨某种结构的计算机的性能潜力。



           用C语言配合Verilog HDL设计算法的硬件电路块时考虑的三个主要问题:

           1.为什么选择C语言与Verilog HDL配合使用?

           2.C语言与Verilog HDL的使用有何限制?

           3.如何利用C语言来加速硬件的设计和故障检测?



           利用C语言完善的查错和编译环境,设计者可以先设计出一个功能正确的设计单元,以此作为设计比较的标准。然后,把C程序一段一段地改写成用并行机构(类似于Verilog HDL)描述的C程序,此时还是在C 的环境里,使用的依然是C语言。如果运行结果正确,就将C语言关键字用Verilog HDL相应的关键字替换,进入Verilog HDL的环境。将测试输入同时加到C与Verilog HDL两个单元,将其输出做比较。这样很容易发现问题的所在,然后更正,再做测试,直至正确无误。剩下的工作就交给后面的设计工程师。



            C程序是顺序结构,而Verilog HDL属于并行结构。



            C程序调用函数是没有延时特性的,一个函数是唯一确定的,对同一个函数的不同调用是一样的。而Verilog HDL中对模块的图同调用是不同的,即使调用的是同一模块,必须用不同的名字来指定。Verilog HDL的语法规则很死,限制很多,能用的判断语句有限。仿真速度较慢,查错功能差,错误信息不完整。仿真软件通常很贵,而且不一定可靠。C语言没有时间关系,转换后的Verilog HDL程序必须做到没有任何外加的人工延时信号,也就是必须表达为有限状态机,即RTL级的Verilog HDL;否则无法使用综合工具把Verilog HDL源代码转化为门级逻辑。


作者: 51黑fan    时间: 2016-1-30 04:35


    目前FPGA中多使用4输入的LUT。查找表本质上就是一个RAM。每个LUT可以看做是一个4位地址线的16*1的RAM。当用户描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能结果,并把结果事先写入RAM。这样每输入一个信号进行逻辑运算就相当于输入一个地址进行查找,找出地址对应的内容,然后输出即可。FPGA采用了逻辑电源阵列LCA这样一个新概念,内部包括可配置逻辑模块CLB、输出输入模块IOB和内部连线三个部分。





    FPGA是一种包含很多相同的逻辑单元的集成电路,在结构上和ASCII相似,具有很多触发器和分布的布线资源。逻辑单元通过连线阵列和可编程开关实现互联。用户在设计时规定逻辑单元实现的逻辑函数,并且选择性地接通互联阵列的连线,从而实现自己的简单设计,结合这些简单的设计就能事先复杂的设计。FPGA设计软件能自动地对用户输入的电路图,或硬件描述语言程序进行翻译,然后进行布局布线。利用设计库里大量的复杂的宏函数可以帮助用户优化设计。





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1