1、硬件描述语言和软件编程语言的区别
硬件描述语言是一种用形式化的方法来描述数字电路和系统的语言。数字电路的设计者利用这种语言可以从上层到下层逐层描述自己的设计思想,用一系列分层次的模块来表示及其复杂的数字系统。然后利用电子设计自动化(EDA)工具来进行仿真验证,再把其中需要变为具体物理电路的模块组合经由自动综合工具转换到门级电路网表,再用专用集成电路(ASIC)或者现场可编程门阵列(FPGA)自动布局布线工具把网表转换为具体电路布线结构的实现,通俗点说,自己来设计内部电路。而软件编程语言是没法改变电路结构的,因为芯片内部已经固化,所以软件编程操作意味着是对内部寄存器的操作。
2、FPGA选型问题
关于FPGA如何选芯片,其实就是根据项目实际情况,对选型芯片做一个综合评估,选择出最具“性价比”的芯片,一般情况下,芯片厂商都会按照产品系列列出所有的产品,直观的告诉你某个系列产品的应用场合。如何选择芯片厂商,要看项目的特殊需求、芯片厂商的供货、报价、以及己方的技术人员对产品的熟悉程度和芯片的成熟度,比如说是不是有较好的软件开发平台呀,还有就是芯片的内部资源,引脚封装、速度等级等。
3、建立时间和保持时间问题
建立时间Tsu: 指数据信号到达触发器输入端的时间要早于 时钟敏感边沿 到达触发器的时间,只有满足建立时间,信号才能正确的保存到触发器,否则数据就不能在此时钟信号变化时被记录,从而无法正确保存到触发器。简言之,时钟沿到来之前,数据保持稳定不变的时间。
保持时间:指 时钟边沿 到达后 输入数据 需要保持稳定不变的时间,满足这个条件,才能保证数据能够保存到触发器,否则,数据就不能在下一个时钟信号变化时被记录下来,导致无法正确的保存到触发器。简言之