这两天一口气做了串口通信实验,PS2键盘实验 和 VGA视频接口实验,这些只能算初步的调试,代码几乎都是直接照搬《Verilog那些事儿》的,通过调试这些实验,自己对FPGA有了新的认识,将这几天的思路记录如下。
一,开始明白什么是建模,这和调单片机之类的串行工作芯片相比有很大的不同。调单片机时,你只需了解一个模块的工 作协议和寄存器配置就可以调试了,至于工作原理不管了解还是不理解,其实在调试过程中都不会有什么大影响的。 例如串口通信,你不需要知道数据是怎么一位一位发过来的,而只需要关注寄存器和定时器的配置就可以了。 而FPGA就不同了,本质上你在用verilog编程的同时就开始在搭建这个硬件模块了。所以基础就是你要先自己搞清楚这 个硬件到底是怎么工作的(EG:串口到底是怎么通信的,怎样将数据进行采样、传输等等方面的)。
对于模块的例化留下一个例子:
第一个要例化的名字是这个子模块的名字
speed_select speed_rx(
.clk(clk), //波特率选择模块
.rst_n(rst_n),
.bps_start(bps_start1),
.clk_bps(clk_bps1)
);
//speed_select 是底层模块名字,而speed_rx 是现在模块设置的名字,可自由使用。
这里并不是一个复用的概念,例化几次就有几个对应的物理模块。
.clk等等是底层函数定义的,而(clk等等)是在本层定义的
二,就编程的格式而言,感觉《Verilog那些事儿》是一个非常好的实验手册,讲解清晰,有层次感。而且非常符合大规模程 序模块化编程的趋势。很方便以后的重复使用。
三,反思不足:
1,Verilog语法掌握的还是不太好,需要认真看书。
2,还不会应用PLL模块实现倍频。
3,对于模块之间的接口设置与数据传输掌握的不好,这个需要对代码再进行认真分析, 同时对语法熟练掌握才能较好解决。
用户447500 2013-10-12 17:09
用户132188 2012-12-20 10:57
用户425037 2012-9-18 18:31
用户338498 2011-9-30 23:40