FPGA HDL代码实现过程

描述

小编在本节完整给出一个设计过程,可利用ISE或Vivado硬件编程软件实现。

1 HDL代码、逻辑电路和器件

  • 编写“HDL代码”来描述电路功能
  • EDA工具中进行“RTL综合”和“综合”
    “RTL综合”将HDL代码转换为逻辑电路
    “综合”这一步将经过“RTL综合”后的门电路映射为FPGA器件的物理结构
  • “实现”这一步将对FPGA器件进行最终的布局布线
  • 综合实现的结果将会被转换为可以最终运行在FPGA器件上的二级制烧录文件

2 HDL代码实例

  • 在每个时钟clk信号的上升沿,实现输出信号dout的值为输入信号ain、bin和cin的2级门运算的结果
  • 这个门运算先是ain和bin“逻辑与”,它们得到的结果再和cin“逻辑或”
  • 输入复位信号rst_n为异步复位信号,任何时刻这个信号的下降沿将直接触发输出信号dot取值为0

举个栗子

module at7(

  clk,rst_n,

  ain,bin,cin,dout

  ); 

input clk;

input rst_n;

input ain,bin,cin;

output reg dout;

 always @(posedgeclk or negedgerst_n)

    if(!rst_n) 

         dout <= 1'b0;

    else 

        dout <= (ain & bin) | cin;

 endmodule

3 RTL综合

  • “RTL综合”后的逻辑电路原理图,它很好的以门电路的形式表达了我们的实例代码
  • “RTL综合”门电路和HDL代码所描述的功能完全一致,大家对比下图和第2节的代码。下图即是代码RTL综合后的布局。

FPGA

图1 RTL综合后的逻辑电路原理图

4 综合

  • “RTL综合”是指将HDL代码转换为逻辑门电路形式来表达的一个过程;“综合”却是将已经用逻辑门关系表达的电路进一步转换为FPGA器件实际物理结构相对应的电路形式 “综合”电路中看不到任何的“门”
  • “综合”的结果是所使用的特定FPGA器件中实际存在着的物理结构,如“输入缓冲”、“查找表”、“触发器”和“输出缓冲”等
    FPGA
    图2 RTL综合与综合的关系

FPGA

图3 综合后的逻辑电路原理图

5 实现

  • 在“综合”给出HDL代码与实际FPGA器件的映射关系后,做具体执行的工作
  • 如果把“综合”结果比喻为电路板设计的“原理图”阶段,那么“实现”这个步骤就是具体的“布局布线(layot)”阶段

FPGA

图4 布线图

6 生成烧录文件

  • 如同电路板的layout完成后要生成gerber,FPGA工具最终也要产生一个bit文件用于烧录到FPGA中运行了

FPGA

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分