1、基本电路及其在FPGA中实现,北京理工大学信息与电子学院,一、FPGA介绍 二、基本电路实现,FPGA设计流程,设计输入,两种设计输入方法:硬件描述语言(HDL)或原理图 不管采用何种设计方法,都需要一个工具来生成EDIF网表以便对Xilinx的FPGA编程适合的综合工具有:Synplify、Leonardo Spectrum、XST 对设计进行仿真使你的设计按照预计方案。,设计实现,设计实现,不仅仅是指“布局布线” 实现包括很多步骤:转换:将多个设计文件合并为一个网表。映射:将网表的逻辑符号(门)组装到物理元件(CLB和IOB)中。布局布线:将元件放置至器件中,并将它们连接起来,同时提取出时
2、序数据 并生成各种报告。 每个步骤都会生成一些文件,使得可以Xilinx工作(例如Floorplanner、FPGA Editor、Xpower等。,下载,ISE,ISE将运行所有必要的步骤实现设计 综合HDL或原理图代码 转换 映射 布局布线,实现,每个实现步骤可以被展开看到可用的子工具和子过程 转换:生成转换后的仿真模型 映射1.平面布局(Floorplan)2.用FPGA编辑器进行手动布线 布局布线1.静态时序2.平面布局器(Floorplannner),查看布局好的设计3.FPGA编辑器(FPGA Editor),查看布线好的设计4.功耗分析器,二、基本电路实现,1、反相器VHDL语言
3、:process(clk)beginif rst =0 thenb = 0;elsif clkevent and clk=1 thenb = not a;end if;end process;,Modelsim仿真使用资源情况: Cell Usage : # BELS : 2 # INV : 2 # FlipFlops/Latches : 1 # FDC : 1 # Clock Buffers : 1 # BUFGP : 1 # IO Buffers : 3 # IBUF : 2 # OBUF : 1,寄存器传输级(RTL)布局,布线,2、编码器实现十进制/8421编码,当输入端对应为高电平时
4、,输出端输出8421码。VHDL:,Modelsim 仿真,实现(RTL寄存器级),LUT查找表,布局布线,3、译码器输入端输入8421码,输出端对应端输出高电平,如输入010时,输出端口2,对应输出高电平。VHDL,Modelsim仿真使用资源情况:,实现(RTL寄存器级),布局布线,4、加法器加法器实现c=a+b的功能,当输入端输入二进制数时,进行加法实现。VHDL,Modelsim仿真使用资源情况,实现(RTL寄存器级),布局布线,5、数值比较器比较两数的大小,输出端对应端输出高电平,若ab,则大于端应为高电平。VHDL:,Modelsim仿真结果: 使用资源情况:,实现 (RTL寄存器
5、级),布局布线:,6、计数器在复位信号有效时,每当时钟上升沿来临时,计数1次,计数范围0-15.VHDL,Modelsim仿真结果使用资源情况:,实现(RTL寄存器级),布局布线,7、多路分配器 通过设置a口,选择对应的输出端口输出数据 VHDL,Modelsim仿真使用资源情况:,实现(RTL寄存器级),布局布线,8、多路选择器 VHDL,Modelsim仿真使用资源情况,实现(RTL寄存器级),布局布线,9、移位寄存器 实验中,产生m序列的移位寄存器,选择3位的m序列发生器,其状态应是001 010 101 011 111 110 100 001,其中状态000时,跳入001状态。 VHDL,Modelsim仿真使用资源情况:,实现(RTL寄存器级)布局布线报告:,布局布线,10、锁存器 本实验仿真D触发器,只有当时钟发生变化时,输出状态才会更改 VHDL,Modelsim仿真使用资源情况,实现(RTL寄存器级)布局布线报告,布局布线,