论文部分内容阅读
随着微电子技术的飞速发展,FPGA(Field Programmable Gate Array)在数字电路设计中的应用越来越广泛,USB(Universal Serial Bus)接口与Flash存储器的使用也越来越普遍。具有USB接口并能直接管理Flash的FPGA系统具有重要的实用价值。不仅可以使系统设计更加灵活,而且还大大降低了成本。本论文对USB接口控制芯片CH372与Flash存储器芯片K9F4G08进行了介绍,详细说明了CH372的中断管理机制、K9F4G08的存储结构、两个芯片的指令集以及工作时序;然后提出了一种基于模块化思想的控制器设计方法,设计了两个控制器模块:controller372与controller4G08,通过它们FPGA可以控制CH372与K9F4G08。FPGA主状态机无需关心芯片的工作时序要求,可以按照系统时钟直接对controller发送指令,controller再对芯片执行相应的操作,最后controller向主状态机返回一个中断信号,表示指令执行完毕。这种设计方法使主状态机的设计大大简化,controller又可以被重复调用,具有很强的可移植性。论文设计的Flash控制器对Flash存储器芯片的坏块(invalid block)提出了一种匹配(mapping)的方法,根据Flash的块擦除指令设计了全擦除指令,执行完该指令后会建立Flash的匹配表,在Flash的读写指令执行之前会根据匹配表进行坏块地址匹配操作,这样保证了大批量数据读写时的连续性。本论文介绍了两个控制器的Verilog HDL代码设计方法,并用Modelsim对两个模块进行功能仿真,最后下装到FPGA开发板上进行硬件的调试。利用Visual Basic语言编写上位机软件对硬件进行控制,将上传与下传的数据读取出来并通过Ultra Compare软件进行比对,验证了USB、Flash数据读写的准确性以及Flash坏块匹配设计的正确性。