仍然使用开发板,SPARTAN6。难免有错,请不吝指正。
串口程序比点灯要复杂,比起来做项目的程序简单很多。
按照设计RTL步骤来设计串口程序:
功能定义与模块划分:简单点,使用串口功能(收发两根普通IO管脚,与电平和时钟结合)收发PC(串口小组手)数据。模块:顶层、收、发、时序、收发控制。
定义所有模块的接口:顶层:时钟、收、发;收:时钟、接收、数据;发:时钟、发送、数据;时序:由时钟产生波特率;收发控制:时钟,收、发、收数据、发数据。
其他:无
理顺顶层模块端口与子模块端口关系:
1、.X是子模块的端口,可以顺序不一致
比如子端口clkdiv的端口列表是module clkdiv(clk50, clkout);
在顶层引用的时候如下
clkdiv u0 (
.clk50 (clk50), //50Mhz的晶振输入
.clkout (clk) //16倍波特