随着越深入的学习,越感觉到自己的作品还有很多没有考虑到的地方。
RTL视图的美
这是最近写的一个FPGA工程RTL视图,在我看来,这个设计已经有些条理了,代码不再是乱写的,有一定章法了。
首先通过总线地址译码(左上角的逻辑判断电路),生成了若干片选信号,cs_uart cs_fpga cs_fram cs_ram,其中cs_fram cs_ram访问的是外部的铁电与RAM,FPGA只是起到时了138译码器的作用,而cs_uart cs_fpga 就是访问的是FPGA内部了,cs_uart 顾名思义就是在FPG内实现了一个UART,在RTL视图中最右边的那个个绿框,cs_fpga是下面那块密密麻麻的一片东西,本来是应该把它们也设计为一个模块的,但是因为懒,就没有弄。
这次跟以前最大的不同是增加了EBI接口模模块,根据我查看BAIDU资料再加上自己的思考加工,我的理解是FPGA应该与STM32有一个统一的接口,这个接口暂称为EBI模块,然后再在EBI模块后面增加UART、SPI、I2C等模块。EBI模块最重要的功能就是把STM32中FMC_DATA双向总线分开了内部2路单向总线 ,一路data_in ,data_out,据说这样做可以简体模块设计,提高了FPGA运行频率, 于是我就按照自己的理解设计 了EBI模块, 有了这些理论作指导,果然下面的操作就顺利多了,
看到网上还有说要进行不同时钟域的匹配,感觉很复杂。也许我现在做的这些还不完善,但是对我现阶段的工作已经足够了,