基于USB和FPGA的随机数发生器验证平台

时间:2011-04-15来源:网络

3.6 存储器模块
为满足特殊功能需求,扩展了1 Mb的Flash。Flash选用Spansion公司的CMOS多功能器件,型号为AM29LV010B,采用32引脚的标准TSOP封装,工作电压为3 V,8位数据宽度。数据总线使用D0~D7,地址总线使用A0~A16,其他还有芯片使能信号CE,输出使能信号0E和写使能信号WE。它与FPGA芯片引脚的具体连接方式如表2所列。

h.JPG


3.7 其他电路
为保证系统中各个芯片能够正常工作,本设计在各电压源都并联有0.1μF的退耦电容,并将这些电容摆放在芯片的周围,滤除高频杂波。

4 测试与验证
各模块电路设计完成后,经Altium Designer09仿真验证,完成了相应的PCB版图设计,并最终进行电路版图的印刷和元器件焊接,实现了整个验证平台。
为检验平台工作的正确性,本文对参考文献中的随机数发生器利用VHDL语言进行了实现,并在输出模块中增加了一个32位的移位寄存器,每产生32位随机数进行一次输出。最后,将该随机数发生器及参考文献中所设计的USB控制器与参考文献中所提供的OC8051 IP核进行挂载连接,其挂接原理图如图6所示。

i.JPG


挂接完成后,利用QuartusII软件,将整个系统以AS下载方式,通过配置芯片EPCS4下载到FPGA板中。由OC8051 IP核控制随机数发生器模块进行工作,每产生32位随机数时,TRNG向OC8051发送一个done信号,OC8051接收32位数据,并将其分为4个8位存于4个特殊功能寄存器(Sp-ecial Function Register,SFR)中,并通过指令MOVX借助累加器将32位数据转移至双端口RAM中。之后进行下一32位随机数的产生及传送,直到运行16次后,RAM中所存储的随机数为512位时,OC8051置sent信号有效,USB控制器将512位随机数封装成数据包,通过USB收发器传送给主机,传送完成后向OC8051返回一个state信号,表明传送结束。重复上述过程即可源源不断地将产生的随机数传送给主机,由主机最终完成随机数检测,检测结果表明所接收到的数据满足随机数特性。
在随机数生成系统下载、随机数生成及随机数传送过程中,整个平台工作正常,表明各模块电路原理及连接的正确性:
①电压转换电路连接正确,能为系统提供稳定电压,同时表明,退耦电容起到了很好的去噪作用;
②下载电路连接正确,能够将程序正确下载到FPGA中;
③复位电路工作正常,时钟电路能给系统提供稳定的时钟;
④USB收发器电路连接正确,能正常收发数据。
由此表明,该验证平台具有一定的可靠性和稳定性,能为随机数发生器提供一个良好的验证环境。

结语
本文结合实际需求,在充分理解FPGA结构原理和元件特性的基础上,设计实现了一个小型的FPGA开发板。它不仅可以作为随机数发生器的验证平台,同时也可为其他基于数字电路实现的系统提供服务。本文所设计的开发板结构比较简单,故难以满足大型数字电路开发系统的要求,为此,下一步的工作是扩展功能模块,设计更多的外围扩展电路,满足更高的实验需求。

1 2 3 4

关键词: FPGA USB 随机数发生器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版