FPGA入门笔记三 RTL schematic验证你的RTL级设计

来源:互联网 发布:assert java 断言 编辑:程序博客网 时间:2024/05/12 23:12

仍然使用开发板,SPARTAN6。难免有错,请不吝指正。

串口程序比点灯要复杂,比起来做项目的程序简单很多。

按照设计RTL步骤来设计串口程序:
功能定义与模块划分:简单点,使用串口功能(收发两根普通IO管脚,与电平和时钟结合)收发PC(串口小组手)数据。模块:顶层、收、发、时序、收发控制。
定义所有模块的接口:顶层:时钟、收、发;:时钟、接收、数据;:时钟、发送、数据;时序:由时钟产生波特率;收发控制:时钟,收、发、收数据、发数据。
其他:无


理顺顶层模块端口与子模块端口关系:

1、.X是子模块的端口,可以顺序不一致

比如子端口clkdiv的端口列表是module clkdiv(clk50, clkout); 

在顶层引用的时候如下

clkdiv u0 (.clk50                   (clk50),               //50Mhz的晶振输入                     .clkout                  (clk)                  //16倍波特率的时钟                         );
2、u0是例化时对子模块起的名字

3、内部的小括号里面变量是.X的输入,小括号里面是空的默认与X同名

4、若要顶层模块调用子模块内部定义的信号,就要把内部信号用input/output引出来


程序综合之后,通过层层分析RTL schematic验证硬件电路与设计的是否一致。

RTL视图,其实就是寄存器级传输图,它在综合及布局布线前就生成了,并非设计的最终电路结构,是设计输入的最忠实的体现,它的主要作用是帮助设计者检查设计输入中的问题。就像是用XST综合的时候,有一个view rtl schematic和一个view technology schematic,区别是前者仅仅是语法分析得到的结构,是你的设计单纯的综合效果,可以帮助你理解你的算法;而后者才是放在FPGA中综合的效果,是用chipscope可以看到的,反映了实际的电路和资源使用情况。


查找spartan6的文档可以对应起来看,是否连接的正确。


引用:

1、http://www.cnblogs.com/youngforever/p/3151604.html

2、Datasheet:Xilinx UG616 Spartan-6 Libraries Guide for schematic design