完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
在走近FPGA预告篇中,我们已经提到了系列文章使用的开发平台,硬木课堂Xilinx Artix 7 FPGA板,如下图所示。它使用的FPGA芯片型号为Xilinx Artix-7 XC7A75T,具有电平开关、LED、矩阵键盘、数码管等基本外设,同时还有高速ADC/DAC,音频Codec,SD卡,32位DDR3L(共1GB)外设用于SoC设计的进阶实验,另外,上方的I/O插槽可以直接插入特定型号的LCD屏幕与摄像头,极大地方便了图像处理相关应用的实现。
硬木课堂出品的Xilinx Artix-7板卡,XC7A75T起步,向上最高兼容到XC7A200T 该FPGA板采用的芯片型号为XC7A75T,从Xilinx官网的数据手册中可以找到7系列FPGA芯片的资源对比,可以看出75T在所有Artix-7系列的FPGA中资源量属于中上,虽然相比于100T和200T而言资源量还是少了许多,但是完成基础的FPGA实验和进阶的SoC设计实验(包括图像处理相关)是足够的。75T和100T, 200T的FPGA芯片是兼容的,硬木课堂同时还提供有200T的FPGA板,以应对更复杂的应用场景需求。 Xilinx Artix-7系列FPGA资源表 Artix-7系列FPGA芯片采用下图所示的基本可配置逻辑块(CLB),其中包括6输入查找表、可选的双向5输入查找表、分布式存储、移位寄存器、高速进位算术逻辑功能以及大量多路复用器。基本可配置逻辑块(CLB)是用于实现时序电路和组合电路的主要逻辑资源。每个CLB都连接到一个交换矩阵(Switch Matrix),以访问通用路由矩阵。每个CLB内部包含两个slice。7系列FPGA中的LUT可以配置为具有一个输出的6输入LUT,也可以配置为具有独立输出但共享地址或逻辑输入的两个5输入LUT。 每个5输入LUT输出都可以选择在触发器中寄存。每个slice由4个这样的6输入LUT、8个触发器、多路复用器和算术运算单元构成。每片四个触发器可以选择配置为锁存器。但在这种情况下,该片中其余的四个触发器必须保持未使用状态。 Artix-7系列FPGA的CLB 更多关于FPGA内部原理结构的介绍,可以阅读《FPGA原理与结构》[日]天野英晴主编,赵谦译 这本书,这本书对FPGA的内部原理阐释得比较清楚,对于初学者也比较友好。另外,如果能够找到《FPGA设计指南-器件、工具和流程》 [美] Clive “Max” Maxfield 著, 杜生海 邢闻 译 这本书也不错,感觉作者的语气比较幽默,但是似乎已经买不到新书了(略有遗憾)。在《FPGA原理与结构》中文版出版之前我就是看的《FPGA设计指南》一书,都很好地帮助理解FPGA的原理结构,从而更好地利用FPGA学习电路设计。 FPGA调试器和UART 在本系列文章使用的FPGA板上的右下方有两个接口,如下图。其中上方的接口(FPGA-Jtag)为FPGA下载接口,通过该接口下载比特流到FPGA中进行配置,功耗较小时,供电也是PC机通过该接口给板卡供电。如果功耗较大,则需要使用FPGA板右上角的辅助供电接口(POWER),可以使用手机5V充电器给板卡供电。 FPGA调试器接口和Arm调试器接口 DAP-JTAG是在板卡用在SoC设计时,调试FPGA内部的Arm内核用的,在未来的走近SoC系列中会应用到。 FPGA-JTAG和DAP-JTAG各自带了一个UART转USB接口。在UART实验中会用到此功能。 FPGA-JTAG除了提供FPGA的调试外,还提供了UART转USB功能 set_property PACKAGE_PIN Y21 [get_ports FTDI_RX] set_property PACKAGE_PIN Y22 [get_ports FTDI_TX] 电平开关和LED 本系列所使用的FPGA板提供了12个直接由FPGA控制的LED灯LED11-LED0,每一个LED灯都由FPGA芯片的一个引脚直接驱动,如图所示。当FPGA的引脚输出高电平时LED灯点亮,反之则熄灭。在LED灯旁边也有12个电平开关,可以作为输入信号,当电平开关处在DOWN位置(靠近开发板边缘)时向FPGA相应引脚输入低电平,当电平开关在UP位置时向FPGA相应引脚输入高电平,如图。 开发板上实体LED和拨动开关 拨动开关的对应FPGA引脚在XDC文件中描述如下,开关拨向上方输出高电平,拨向下方输出低电平: set_property PACKAGE_PIN E16 [get_ports {SW_In[11]}] set_property PACKAGE_PIN A15 [get_ports {SW_In[10]}] set_property PACKAGE_PIN B15 [get_ports {SW_In[9]}] set_property PACKAGE_PIN D15 [get_ports {SW_In[8]}] set_property PACKAGE_PIN A14 [get_ports {SW_In[7]}] set_property PACKAGE_PIN D14 [get_ports {SW_In[6]}] set_property PACKAGE_PIN A13 [get_ports {SW_In[5]}] set_property PACKAGE_PIN B13 [get_ports {SW_In[4]}] set_property PACKAGE_PIN C13 [get_ports {SW_In[3]}] set_property PACKAGE_PIN E13 [get_ports {SW_In[2]}] set_property PACKAGE_PIN E14 [get_ports {SW_In[1]}] set_property PACKAGE_PIN B16 [get_ports {SW_In[0]}] LED的对应FPGA引脚在XDC文件中描述如下,FPGA引脚输出高电平,LED被点亮,FPGA引脚输出低,LED熄灭: set_property PACKAGE_PIN AA20 [get_ports {led[11]}] set_property PACKAGE_PIN V22 [get_ports {led[10]}] set_property PACKAGE_PIN W21 [get_ports {led[9]}] set_property PACKAGE_PIN W22 [get_ports {led[8]}] set_property PACKAGE_PIN U22 [get_ports {led[7]}] set_property PACKAGE_PIN U21 [get_ports {led[6]}] set_property PACKAGE_PIN T21 [get_ports {led[5]}] set_property PACKAGE_PIN T20 [get_ports {led[4]}] set_property PACKAGE_PIN R19 [get_ports {led[3]}] set_property PACKAGE_PIN P20 [get_ports {led[2]}] set_property PACKAGE_PIN P19 [get_ports {led[1]}] set_property PACKAGE_PIN AA21 [get_ports {led[0]}] 矩阵键盘 FPGA板带有一个4x4的矩阵键盘,可以用于一些外界的控制交互,如图所示。 实体矩阵键盘 矩阵键盘原理图 键盘一般设为输入(默认下拉),列键盘设为输出。需要注意的是,按下按键时信号存在抖动,所以需要设计按键消抖模块以免按键抖动带来未预期的系统错误。 set_property PACKAGE_PIN AA10 [get_ports {row[0]}] set_property PACKAGE_PIN V10 [get_ports {row[1]}] set_property PACKAGE_PIN W10 [get_ports {row[2]}] set_property PACKAGE_PIN AA9 [get_ports {row[3]}] set_property PACKAGE_PIN AB10 [get_ports {col[0]}] set_property PACKAGE_PIN W11 [get_ports {col[1]}] set_property PACKAGE_PIN AA11 [get_ports {col[2]}] set_property PACKAGE_PIN T14 [get_ports {col[3]}] set_property PULLDOWN true [get_ports {row[3]}] set_property PULLDOWN true [get_ports {row[2]}] set_property PULLDOWN true [get_ports {row[1]}] set_property PULLDOWN true [get_ports {row[0]}] 数码管 FPGA板上配有配有6个七段数码管DIG1-DIG6(当正放FPGA开发板时,从左至右为1-6),每个数码管都由一个专用片选信号(DIG1- DIG6)控制,如图所示。七段数码管的每个引脚均通过共阴模式连接到 FPGA芯片上,当FPGA输出高电压时,对应的字码段点亮,反之则熄灭。数码管的片选信号也直接与FPGA引脚相连,当FPGA输出低电压时,对应的数码管选中,反之则不选中。 6位数码管实物 数码管原理图 set_property PACKAGE_PIN Y16 [get_ports {Digitron_Out[7]}] set_property PACKAGE_PIN W14 [get_ports {Digitron_Out[4]}] set_property PACKAGE_PIN Y17 [get_ports {Digitron_Out[5]}] set_property PACKAGE_PIN AA15 [get_ports {Digitron_Out[6]}] set_property PACKAGE_PIN AB17 [get_ports {Digitron_Out[3]}] set_property PACKAGE_PIN AB16 [get_ports {Digitron_Out[2]}] set_property PACKAGE_PIN AB15 [get_ports {Digitron_Out[1]}] set_property PACKAGE_PIN AA16 [get_ports {Digitron_Out[0]}] set_property PACKAGE_PIN AA14 [get_ports {DigitronCS_Out[0]}] set_property PACKAGE_PIN AB11 [get_ports {DigitronCS_Out[1]}] set_property PACKAGE_PIN Y13 [get_ports {DigitronCS_Out[2]}] set_property PACKAGE_PIN AA13 [get_ports {DigitronCS_Out[3]}] set_property PACKAGE_PIN AB13 [get_ports {DigitronCS_Out[4]}] set_property PACKAGE_PIN Y14 [get_ports {DigitronCS_Out[5]}] 3组IO的介绍 FPGA板上方有3组IO接口,可以用于LCD显示屏和摄像头的直插(对于示例中用到的摄像头和LCD显示屏,分别可以直接插到右边和左边的IO接口组,效果如图。在我之前写过的一篇文章中(https://zhuanlan.zhihu.com/p/98980911)对使用摄像头和LCD显示屏进行开发的过程有更多的描述,另外,在后续系列文章中也会对相关的实验进行详细的介绍 3组对外IO,可以直接插2.4寸并口屏,串口屏,摄像头等模块 在对外IO上插接LCD和摄像头(兼容多种分辨率,多种引脚分布) 高速ADC/DAC FPGA开发板的左上方是高速ADC/DAC芯片,该芯片是来自 MAXIM公司(Now ADI)的超低功耗模拟前端,最高工作频率达到20MHz,芯片型号为Max5864。Max5864集成了双路的8位ADC以及双路的10位DAC,其数字输出电平为+1.8V至+3.3V(TTL/CMOS兼容),且该芯片的ADC和DAC既可以同时工作也可以独立工作。其关断与工作模式由三线的串行接口来控制。高速ADC/DAC芯片左侧的一组黄色贴片排母IO接口包含两组ADC输入接口,分别标识为ADC1和ADC2,还包含两组DAC输出接口,分别标识为DAC1和DAC2,可通过导线与示波器、信号源等仪器相连进行实验。 高速数据采集Codec,包括两路8位20MSPS ADC和两路10位20MSPS DAC ##ADC_data set_property PACKAGE_PIN E18 [get_ports {ADC_data[0]}] set_property PACKAGE_PIN F18 [get_ports {ADC_data[1]}] set_property PACKAGE_PIN F19 [get_ports {ADC_data[2]}] set_property PACKAGE_PIN F20 [get_ports {ADC_data[3]}] set_property PACKAGE_PIN C20 [get_ports {ADC_data[4]}] set_property PACKAGE_PIN D20 [get_ports {ADC_data[5]}] set_property PACKAGE_PIN A19 [get_ports {ADC_data[6]}] set_property PACKAGE_PIN A20 [get_ports {ADC_data[7]}] ##DAC_data set_property PACKAGE_PIN A18 [get_ports {DAC_data[0]}] set_property PACKAGE_PIN B20 [get_ports {DAC_data[1]}] set_property PACKAGE_PIN G21 [get_ports {DAC_data[2]}] set_property PACKAGE_PIN F21 [get_ports {DAC_data[3]}] set_property PACKAGE_PIN E21 [get_ports {DAC_data[4]}] set_property PACKAGE_PIN D21 [get_ports {DAC_data[5]}] set_property PACKAGE_PIN A21 [get_ports {DAC_data[6]}] set_property PACKAGE_PIN B21 [get_ports {DAC_data[7]}] set_property PACKAGE_PIN C22 [get_ports {DAC_data[8]}] set_property PACKAGE_PIN B22 [get_ports {DAC_data[9]}] ##AD_DA_clk 、SPI set_property PACKAGE_PIN D19 [get_ports AD_DA_clk] set_property PACKAGE_PIN E22 [get_ports AD_DA_SCLK] set_property PACKAGE_PIN D22 [get_ports AD_DA_DIN] set_property PACKAGE_PIN G22 [get_ports AD_DA_CSn] 音频和SD卡 FPGA开发板的左下侧载有立体声多媒体数字信号编译码器芯片WM8978。WM8978是Wolfson推出的一款全功能音频处理器,带有一个HI-FI级数字信号处理内核,支持增强3D硬件环绕音效,以及5频段的硬件均衡器,可以有效改善音质。在音频编译码芯片的左侧有两个音频接口,位于上侧的是音频输入接口,可通过音频连接线连接音频播放设备(如手机)来输入音频信号,位于下侧的是音频输出接口,可以连接耳机播放音乐。另外,在FPGA开发板相同位置的背面,还有一个Micro SD卡的插槽,可放置SD卡。 24位音频Codec芯片 set_property PACKAGE_PIN D16 [get_ports aud_bclk] set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets aud_bclk_IBUF] set_property PACKAGE_PIN A16 [get_ports aud_lrc] set_property PACKAGE_PIN E19 [get_ports aud_adcdat] set_property PACKAGE_PIN C18 [get_ports aud_mclk] set_property PACKAGE_PIN C17 [get_ports aud_dacdat] set_property PACKAGE_PIN C19 [get_ports aud_scl] set_property PACKAGE_PIN D17 [get_ports aud_sda] DDR3L 开发板上FPGA正下方是两片DDR3L SDRAM存储器芯片,产自Micron公司。DDR SDRAM的全称是双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory),其在时钟的上升沿和下降沿都能进行数据传输。DDR3是DDR2的后继者,提供了相较于DDR2 SDRAM更高的运行效能与更低的电压。而DDR3L的L是Low Voltage的缩写,DDR3的工作电压为1.5V,而DDR3L工作电压为1.35V。 32位宽,1GB DDR3L存储器 开发板上DDR3L SDRAM芯片的型号为MT41K256M16TW,即一片该DDR3L SDRAM存储器芯片的深度为256M,宽度为16bit (2Byte),故存储器容量为512MB(256M×2Byte),两片DDR3L芯片地址线已经连在了一起,相当于一片深度不变但数据宽度翻倍(32bit)的DDR3L SDRAM,两片存储器芯片构成的存储器总容量为1GB。 DDR3L的引脚较多,我们将在DDR3L的章节中专门介绍。 千兆以太网 在FPGA开发板的右上侧载有千兆以太网PHY芯片以及网口。该芯片为Realtek公司的RTL8211E,支持1000Mbps的网络传输速率,通过RGMII接口与FPGA进行数据通信,传输时钟为125MHz,4bit的发送数据TXD与接收数据RXD在时钟的上升沿和下降沿采样。开发版上板载的RTL8211E已配置好RX与TX延迟,工作电压为3.3V。 千兆以太网接口和PHY芯片,我们采用RGMII接口,节约引脚 set_property PACKAGE_PIN V17 [get_ports {rgmii_rxd[3]}] set_property PACKAGE_PIN AB20 [get_ports {rgmii_rxd[2]}] set_property PACKAGE_PIN AA19 [get_ports {rgmii_rxd[1]}] set_property PACKAGE_PIN V19 [get_ports {rgmii_rxd[0]}] set_property PACKAGE_PIN U18 [get_ports {rgmii_txd[3]}] set_property PACKAGE_PIN U17 [get_ports {rgmii_txd[2]}] set_property PACKAGE_PIN AB18 [get_ports {rgmii_txd[1]}] set_property PACKAGE_PIN AA18 [get_ports {rgmii_txd[0]}] set_property PACKAGE_PIN R14 [get_ports e_mdc] set_property PACKAGE_PIN P14 [get_ports e_mdio] set_property PACKAGE_PIN Y18 [get_ports rgmii_rxc] set_property PACKAGE_PIN V18 [get_ports rgmii_rxctl] set_property PACKAGE_PIN Y19 [get_ports rgmii_txc] set_property PACKAGE_PIN W17 [get_ports rgmii_txctl] VGA接口 如果需要连接扩展显示,也可以通过FPGA板右边的VGA接口连接扩展显示设备,VGA接口共有15针,分成3排,每排5个孔,接口原理图如下。VGA接口具有分辨率高、显示速率快、颜色丰富等优点。VGA接口不但是CRT显示设备的标准接口,同样也是LCD液晶显示设备的标准接口,具有广泛的应用范围。 VGA接口实物 VGA接口原理图 VGA与FPGA的引脚对应关系: VGA_R0 R17;VGA_R1 W16;VGA_R2 W15;VGA_R3 U16;VGA_G0 T16;VGA_G1 V15;VGA_G2 U15;VGA_G3 V14;VGA_B0 AB12;VGA_B1 P16;VGA_B2 W12; VGA_B3 Y12;VGA_HS T15; VGA_VS V13。 |
|
|
|
只有小组成员才能发言,加入小组>>
883 浏览 2 评论
12815 浏览 0 评论
4112 浏览 7 评论
2328 浏览 9 评论
2150 浏览 2 评论
448浏览 2评论
763浏览 2评论
884浏览 2评论
386浏览 1评论
609浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 08:27 , Processed in 0.961324 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号