FPGA 1 2 3
“FPGA设计中的约束文件有3类:用户设计文件(.UCF文件)、网表约束文件(.NCF文件)以及物理约束文件(.PCF文件),可以完成时序约束、管脚约束以及区域约束。3类约束文件的关系为:用户在设计输入阶段编写UCF文件,然后UCF文件和设计综合后生成NCF文件,最后再经过实现后生成PCF 文件。” .ucf 定义了外部的资源,比如
#CLOCK NET "CLK50M" LOC = "P55"; #IO_B NET "KEY[1]" LOC = "P124";# KEY1 NET "KEY[0]" LOC = "P126";#LCD_RS, KEY0 NET "LED[0]" LOC = "P127";#LCD_RW, LED0 NET "LED[1]" LOC = "P131";#LCD_E , LED1 NET "CLK50M" TNM_NET = "TNM_CLK"; TIMESPEC "TS_CLK" = PERIOD "TNM_CLK" 20 ns HIGH 50%;
所有的assign 和always 块都是并行发生的。每个都是一个独立的门?
FPGA是由查找表和触发器来构成
“我认为VHDL比较严谨,Verilog比较灵活。VHDL与Verilog的区别有点与汇编语言和C语言类似。芯片设计厂商通常都用Verilog,很少有用VHDL的。”
3、设计一个小代码,下载到目标板看看结果 此时可以设计一个最简答的程序,譬如点灯。如果灯在闪烁了,表示基本入门了。如果此时能够下载到fpga外挂的flash,fpga程序能够从flash启动,表明fpga的最简单设计你已经成功,可以到下一步。 4、设计稍微复杂的代码,下载到目标板看看结果。 可以设计一个UART程序,网上有参考,你要懂RS232协议和fpga内置的逻辑分析仪。网上下载一个串口调试助手,调试一番,如果通信成功了, 恭喜,水平有提高。进入下一步。 5、设计复杂的代码,下载到目标板看看结果。 譬如sdram的程序,网上也有参考,这个设计难度有点大。可用串口来调试sdram,把串口的数据存储到sdram,然后读回,如果成功,那你就比较熟悉fpga的设计饿了
logic cell 和 cpu core有啥不同?如何处理资源共享的问题? 一般才100mhz,如何显示性能优势?还是只做前期验证?
http://www.ni.com/tutorial/6097/zhs/#
多单元能加速算法。但如何做到保证算法是线性复杂度的呢(查找所花时间是固定的)?
多并行逻辑单元和能处理大量数据有何关系?