资讯动态

FPGA篇---IP核与电压Bank

发布时间:2026/10/1 4:28:33 来源:尧图企业网站定制
Bank你可以先把一颗FPGA芯片想象成一个巨大的住宅小区里面住着成千上万户“居民”也就是逻辑单元。而Bank就是小区里划分出的一个个独立供电的区域。 第一步为什么需要Bank解决“众口难调”的问题这个小区的居民很奇怪有些家要用3.3V的电器有些要用1.8V的甚至有些要用1.2V的高速设备。显然没法用一根总电线给整个小区供不同的电压。解决办法就是分片区供电把小区划成几个大区域Bank。每个区域配一个独立变压器即Bank的供电引脚VCCO统一给这个区域内的所有住户I/O引脚提供同一种电压。A区用3.3VB区用1.8V互不干扰。核心结论一个Bank内部的所有I/O引脚必须工作在相同的电压标准下。这就是Bank最根本的设计逻辑。⚡ 第二步两类“居民”——HR Bank和HP BankFPGA内部主要住着两种“居民”对应着两种不同类型的Bank它们的“饭量”性能和“口味”电压需求完全不同。HR Bank高范围Bank—— 兼容型“老住户”特点啥都能接皮实耐用。支持最高3.3V的电压连接传统的传感器、LED、普通外设非常方便。应用适合大多数常规I/O需求是A7系列等芯片的主力Bank类型。HP Bank高性能Bank—— 专精型“新住户”特点速度快但电压要求严苛。只能支持1.8V及以下的低电压专为DDR4内存、高速ADC/DAC等需要极速和低功耗的接口设计。绝活内置了ODELAY输出延迟功能可以在输出信号时进行精细的延时调节HR Bank是没有这个硬件的。K7及更高端的芯片才会有HP Bank。简单对比特性HR Bank 高范围HP Bank 高性能最大电压3.3V1.8V核心技能通用I/O高速I/O带输出延迟(ODELAY)常见芯片Artix-7全系等Kintex-7, Virtex-7等 第三步特殊的“通信基站”——GTH/GTY等高速收发器Bank在小区的高层楼顶上还有几个专用的通信基站叫GT Bank如GTP, GTX, GTH, GTY等。它们独立于HR和HP Bank负责超高速串行数据传输比如PCIe、万兆以太网、SFP光口等速率可高达几个Gbps甚至几十Gbps。这些“基站”有自己独立的供电和复杂的内部结构。 第四步硬件设计的“规矩”理解了Bank的概念你在画电路板、分配引脚时就要遵守几条“硬规矩”不然芯片可能不工作甚至损坏一个Bank一种电压给一个Bank的VCCO供电引脚接了3.3V那这个Bank里所有I/O就都得用3.3V的标准。相邻Bank要兼容如果两个Bank紧挨着它们的电压不能差太多否则中间会漏电。专用参考电压脚(VREF)如果一个Bank里用了需要外部参考电压的标准就要占用这个Bank里专门的VREF引脚这个脚上的电压必须精确稳定。配置Bank别乱动芯片连电脑下载代码的那几个专用引脚如TCK、TDO等也属于一个特殊的Bank通常是Bank 0。这个Bank的电压由CFGBVS引脚来决定是3.3V还是1.8V设计时要特别注意。Mermaid 总结框图下面这张图概括了FPGA芯片如何通过Bank来“分片治理”I/O引脚。通过这个“分小区供电”的思路就能清楚FPGA为什么要用Bank来统一管理不同电压和速度等级的接口这也是从写代码到跑通板子的重要基础。IP核的开发IP核Intellectual Property Core可以通俗地理解成经过预先设计、验证好的“电路功能模块”。它就像做菜时的料理包你不需要自己从种菜、杀鱼开始只需要学会如何打开包装、入锅烹饪就能得到一道专业级别的菜。在Vivado里使用IP核就是从写代码的“手工作坊”升级到调用专业模块的“系统集成”。一、什么是IP核为什么要用它是什么一个已经封装好的电路比如一个CPU软核MicroBlaze一个内存控制器MIG或者一个数学运算器浮点乘法器。为什么要用快别人花几个月优化的高性能FIFO你5分钟就能集成到工程里。对经过厂商严格验证不担心功能边界上有隐藏的bug。用得起很多基础IP如时钟管理器MMCM基本FIFO是免费的。二、IP核的分类从简单到复杂基础原语最底层直接对应芯片上的硬件单元比如一个高速收发器、一个DSP48切片几乎没有包装你可以直接例化。标准IP最常用由Vivado自带高度可配置比如时钟向导Clocking Wizard、块状存储器Block Memory Generator、FIR滤波器等。第三方/定制IP你可以在IP打包器里把自家核心算法封装成IP反复调用或者从厂商拿到加密的设计文件。子系统IP最高级就是一个完整复杂的外设比如DDR4内存控制器MIG它由多个底层IP级联而成会生成一大套文件。三、创建流程手把手以创建一个时钟向导把100MHz差分时钟变成50MHz单端为例步骤如下第一步新建IP核工程或项目中创建在Vivado中既可以新建一个“可管理的IP工程”Manage IP用来只生成和修改IP适合团队统一管理所有IP版本。更常用的是在已有项目里直接调用点击Flow Navigator中的IP Catalog。第二步在IP目录中选择目标IP快捷键CtrlK或者点开左侧IP Catalog页搜索Clocking Wizard。找到“Clocking Wizard”双击打开配置向导。第三步图形化配置参数勾选“Phase Alignment”相位对齐。输入时钟频率设置100MHzSource选择Differential。输出时钟把clk_out1改为50MHz。底下的Port Renaming里可以看到最后生成模块的叫法比如clk_in1_pclk_in1_n。切换到Summary标签可以预览最终输出文件列表。点击OK。第四步生成输出产物Vivado会弹窗让你选择生成方式“Out of context per IP”是推荐的把IP当成独立小工程单独跑综合不参与顶层综合这样改顶层不重跑IP速度很快。点击GenerateVivado会运行IP的独立综合生成网表和所有需要的文件。四、使用/调用IP核在代码里用料理包生成好后工程里会多一个.xci文件IP容器信息文件这就是IP本身。使用方法有三种最简单例化模板法推荐打开工程在Sources窗口找到刚生成的clk_wiz_0展开并打开Instantiation Template选择语言.veoVerilog或.vhoVHDL。复制里面的参数-端口例化代码粘贴到你的顶层模块里修改连线信号名即可。它的格式大致如下clk_wiz_0 instance_name ( .clk_in1_p(clk_in1_p), .clk_in1_n(clk_in1_n), .clk_out1(clk_50M), .reset(reset), .locked(locked) );图形化法Block Design在Create Block Design里按加号可直接把clk_wiz_0拉进图里然后把它的clk_out1连线到你其他模块的时钟端口上最后对整个Block Design用“Generate Block Design”导出为HDL代码供顶层调用。其他方法高级用户也可以用IP Integrator与图形化法类似但针对更复杂的系统级互联或用Tcl脚本命令在自动化流程里批量生成。五、使用注意事项版本控制只要留好.xci文件就行了生成的大量临时文件不必归档。换台电脑打开工程会自动重新生成。输出时钟抖动MMCM/PLL会引入微小抖动高速设计里要查IP的数据手册。复位与锁定时钟IP常有reset和locked信号。locked信号有效前clk_out不稳定一定要用locked作为你核心电路的全局复位源。锁定IP属性右键IPSet as Top可以单独调试它。Enable/Disable可以控制它是否参与本次编译。更新与重新生成如果双击.xci修改了配置Vivado会提示“Outputs out of date”需要重新生成输出产物否则实际电路还是按原来配置。Mermaid流程图IP核创建与使用全路径当你熟练以后可以把多个IP在Block Design里拖拽连接快速构建起一个复杂SoC的骨架这正是现代FPGA开发的高效所在。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑