大三下学期开始准备考研,刚好碰上了FPGA的课程,实在水不下去了,还是好好学一学吧。
以免学过就忘,做几篇笔记加深一下印象。
FPGA基础认识:
本学期课程使用的开发板为QC-FPGA-C1,使用ALTERA公司推出的CYCLONE系列芯片EP1C3T144(笔者所使用开发板处理器)、EP1C6T144作为核心处理器,这两款处理器区别并不大,主要体现为EP1C6T144的RAM总量、逻辑单元数量、锁相环(这是什么?我也不知道)略多于前者;此开发板默认装配的是48Mhz的晶振,其晶振频率普遍大于STM32系列开发板,而前者所用实时时钟采用的是32.768kHz晶振;此开发板使用JTAG编程口对FPGA进行编程(下载文件后缀为pof)和AS编程口对EPCS1(串行存储器)进行编程(后缀为sof),分别对应的为JTAG Mode 及 AS Mode;开发板可用模块包括:LED、单键模块(其中SW1为复位键,只要有复位信号存在的源程序,在程序下载后,都需按下复位键,程序才可正常运行)、拨码开关模块、蜂鸣器等等。
Cyclone系列FPGA后缀说明:
学STM32的时候也会去了解一下芯片后缀含义,所以把这个加入作为笔记。
引脚分配:
在开发过程中常使用一个txt引脚分配文件,把引脚对应起来,如下所示:
#数码管位码控制引脚
set_location_assignment PIN_6 -to en[0]
set_location_assignment PIN_144 -to en[1]
set_location_assignment PIN_142 -to en[2]
set_location_assignment PIN_141 -to en[3]
#矩阵键盘控制引脚(与电机共用引脚,详细见电路图,需要跳线帽设置)
set_location_assignment PIN_40 -to row[0]
set_location_assignment PIN_37 -to row[1]
set_location_assignment PIN_39 -to col[0]
set_location_assignment PIN_38 -to col[1]
#串口收发控制引脚
set_location_assignment PIN_59 -to txd
set_location_assignment PIN_92 -to Rxd
对于FPGA的理解:
本人理解能力有限,就我看来,FPGA即通过用户编程来实现数字电路功能,与之形成对比的是,51系列、STM32系列,均为完成实际电路的设计后实现某些功能,与FPGA的思维是有很大不同的。
综上,正式开始FPGA的学习。