下面是我学习FPGA时的笔记,希望以后有用:
安装软件Quertus II以后,我们还需要安装USB BLASTER(下载线)的驱动USB BLASTER的驱动是有Quartus II软件提供的。
一种是JTAG方式,一种是AS方式。对应的在核心板上有两个10针的接口,上面有标识AS口和JTAG口。USB下载线一端不电脑的USB口相连接,另一端不小黑的JTAG口戒者AS口相连。在同一时刻,我们叧能使用其中一个接口。其中JTAG方式负责FPGA在线仿真, 程序通过USB下载线下载到FPGA内部SRAM中。由亍FPGA是基亍SRAM技术的,所以掉电以后,程序会丢失;AS方式是将程序下载到FPGA外部的配置芯片EPCSX中的,EPCSX实质是一种串行FLASH,因此,掉线以后,程序丌会丢失。每次上电,EPCSX中的程序都会自动加载到FPGA中,然后再开始运行。
后缀为.sof的文件供JTAG模式下载使用,而后缀为.pof的文件供AS模式下载使用。
建模在PFGA设计中非常重要!
笔者记得在quartus II 9.0 版本中,“除法器”可以自己定义。但是在更高级的版本中,这些选项就消失了。尤其是说消失,还不如说更“默认化”了。默认下“除法器”和“求余器”是32 位输出。但是经过“编译”过后,编译器会“自动优化”最适合的位宽。所以在使用“/”和“%”时变量应设置为32位。
PS/2协议:键盘的编码有“通码”(Make)和“断码”(Break)之分。看得简单一点就是,“通码”是某按键的“按下事件”,“断码”是某按键的“释放事件”。假设,笔者按下“W”键不放,每秒大约会输出10 个“0x1d”的“通码”。然后我释放“W”键,就会输出“0xF0 0x1d” 的“断码”。编码键盘还有一个老规则,就是一次只能有一个输出而已(多个按键同时按下,只有其中一个有效)。
再假设笔者按下“W”键不放,然后我再按下“X”键不放,那么会输出“0x1d”“0x22”“0x22”........ 的通码。如果此时笔者放开“X”键,就会输出“0xf0 0x22”的“断码”,此时“W”键的“通码”已经无效。但是当笔者释放“W”键的时候,依然会输出“0xf0 0x1d”, “W”键的“断码”。
至于组合键“ Shift + ?” ,“ Ctrl + ?”都是软件的工作,我们就无视吧。