什么是IP Core?

部署运行你感兴趣的模型镜像

IP核是指用于产品应用专用集成电路(ASIC)或者可编辑逻辑器件(FPGA)的逻辑块或数据块。将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器,SDRAM控制器,PCI接口等等设计成可修改参数的模块,让其他用户可以直接调用这些模块,这样就大大减轻了工程师的负担,避免重复劳动。随着CPLD/FPGA的规模越来越大,设计越来越复杂,使用IP核是一个发展趋势。理想地,一个知识产权核应该是完全易操作的--也就是说,易于插入任何一个卖主的技术或者设计方法。通用异步接发报机(UARTs)、中央处理器(CPUs)、以太网控制器和PCI接口(周边元件扩展接口)等都是知识产权核的具体例子。  
知识产权核心分为三大种类:硬核,中核和软核。硬件中心是知识产权构思的物质表现。这些利于即插即用应用软件并且比其它两种类型核的轻便性和灵活性要差。像硬核一样,中核(有时候也称为半硬核)可以携带许多配置数据,而且可以配置许多不同的应用软件。三者之中最有灵活性的就是软核了,它存在于任何一个网络列表(一列逻辑门位和互相连接而成的集成电路)或者硬件描述语言(HDL)代码中。  
目前许多组织像免费的IP项目和开放核一类的都联合起来共同致力于促进IP核的共享。
多组织像免费的IP项目和开放核一类的都联合起来共同致力于促进IP核的共享。



硬件描述语言HDL(Hardware Description Language)的发展为复杂电子系统设计提供了建立各种硬件模型的工作媒介。它的描述能力和抽象能力强,给硬件电路,特别是半定制大规模集成电路设计带来了重大的变革。目前,用得较多的有已成为IEEE为 STD1076标准的VHDL、IEEE STD 1364标准的Verilog HDL和Altera公司企业标准的AHDL等。
由于HDL的发展和标准化,世界上出现了一批利用HDL进行各种集成电路功能模块专业设计的公司。其任务是按常用或专用功能,用HDL来描述集成电路的功能和结构,并经过不同级别的验证形成不同级别的IP内核模块,供芯片设计人员装配或集成选用。
IP(Intellectual Property)内核模块是一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路、器件或部件。它有几种不同形式。IP内核模块有行为(behavior)、结构(structure)和物理(physical)3级不同程度的设计,对应有主要描述功能行为的“软IP内核(soft IP core)”、完成结构描述的“固IP内核(firm IP core)”和基于物理描述并经过工艺验证的“硬IP内核(hard IP core)”3个层次。这相当于集成电路(器件或部件)的毛坯、半成品和成品的设计技术。
软IP内核通常是用某种HDL文本提交用户,它已经过行为级设计优化和功能验证,但其中不含有任何具体的物理信息。据此,用户可以综合出正确的门电路级网表,并可以进行后续结构设计,具有最大的灵活性,可以很容易地借助于EDA综合工具与其他外部逻辑电路结合成一体,根据各种不同的半导体工艺,设计成具有不同性能的器件。可以商品化的软IP内核一般电路结构总门数都在5000门以上。但是,如果后续设计不当,有可能导致整个结果失败。软IP内核又称作虚拟器件。
硬IP内核是基于某种半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。其提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来就用的全套技术。
固IP内核的设计深度则是介于软IP内核和硬IP内核之间,除了完成硬IP内核所有的设计外,还完成了门电路级综合和时序仿真等设计环节。一般以门电路级网表形式提交用户使用。
TI,Philips和Atmel等厂商就是通过Intel授权,用其MCS51的IP内核模块结合自己的特长开发出有个性的与Intel MCS51兼容的单片机。
常用的IP内核模块有各种不同的CPU(32/64位CISC/RISC结构的CPU或8/16位微控制器/单片机,如8051等)、32/64位DSP(如320C30)、DRAM、SRAM、EEPROM、Flashmemory、A/D、D/A、MPEG/JPEG、USB、PCI、标准接口、网络单元、编译器、编码/解码器和模拟器件模块等。丰富的IP内核模块库为快速地设计专用集成电路和单片系统以及尽快占领市场提供了基本保证。


转自:

作者:海天长笑博客

http://bbs.ednchina.com/BLOG_ARTICLE_112206.HTM


您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在Xilinx Vivado中生成并配置 **DDS Compiler IP Core** 是实现数字信号合成(DDS)的关键步骤。以下是详细的操作流程和配置说明。 --- ## 一、打开Vivado并创建工程 1. 打开 Vivado Design Suite(以 2018.3 为例)。 2. 创建一个新的 RTL 工程(RTL Project),选择目标 FPGA 芯片型号(如 xc7a35tcsg324-1)。 3. 添加一个新的 Verilog 文件(如 `top_module.sv`)。 --- ## 二、添加 DDS Compiler IP Core ### 1. 打开 IP Catalog - 在左侧 Flow Navigator 中点击 **IP Catalog**。 - 在搜索框中输入 “**DDS Compiler**”。 ### 2. 添加 DDS Compiler - 双击 “**DDS Compiler**” 或右键选择 “**Add IP**”。 - 在弹出的窗口中点击 “**OK**”。 --- ## 三、配置 DDS Compiler IP Core 弹出配置界面后,按以下步骤设置 DDS 模块: ### A. Basic 选项卡 | 参数 | 建议设置 | 说明 | |------|----------|------| | Component Name | `dds_compiler_0` | IP 实例名称 | | Output Frequency | 不填,后续通过频率控制字动态设置 | | | Phase Increment Programmable | ✔️勾选 | 支持运行时动态设置频率 | | Phase Offset Programmable | 可选 | 支持相位偏移控制 | | Amplitude Scaling | ✔️勾选 | 支持幅度调节 | | Output Waveform | Sine | 选择输出正弦波 | | Output Frequency Accuracy | High | 高精度 | | Output Frequency Range | 自动计算 | 根据系统时钟和参数自动计算 | | Sample Period | 1 | 一个周期内一个采样点 | ### B. Phase Generator 选项卡 | 参数 | 建议设置 | 说明 | |------|----------|------| | Phase Width | 32 | 相位累加器宽度,决定频率分辨率 | | Accumulator Rounding | ✔️勾选 | 提高输出精度 | | Output Rounding Mode | Round | 舍入方式 | ### C. Output 选项卡 | 参数 | 建议设置 | 说明 | |------|----------|------| | Output Width | 16 | DAC 为16位,所以设置输出为16位 | | Output Type | Signed | 输出为有符号数,适合正弦波 | | Data Format | Normal | 标准格式 | | Output Tvalid/Tready Handshake | 可选 | 若使用 AXI4-Stream 接口才启用 | --- ## 四、生成 IP Core - 点击 “**OK**” 完成配置。 - 回到 Block Design 或 Verilog 代码界面。 - 右键点击 DDS IP,选择 “**Generate Output Products**”。 - 再次右键选择 “**Create HDL Wrapper**” 创建顶层封装。 --- ## 五、实例化 DDS IP Core 在你的顶层模块中实例化 DDS IP: ```verilog dds_compiler_0 u_dds_compiler_0 ( .aclk(sys_clk_100MHz), // 输入时钟 .s_axis_phase_tvalid(1'b1), // 相位控制字有效 .s_axis_phase_tdata(freq_word), // 32位频率控制字 .m_axis_data_tvalid(), // 输出有效(可忽略) .m_axis_data_tdata(sin_data) // 16位正弦波输出 ); ``` --- ## 六、动态设置频率控制字 频率控制字的计算公式如下: $$ \text{freq\_word} = \left\lfloor \frac{f_{out} \times 2^{N}}{f_{clk}} \right\rfloor $$ 其中: - $ f_{out} $:期望输出频率(如 500kHz) - $ f_{clk} $:系统时钟(如 100MHz) - $ N $:相位累加器位数(默认为32) 例如: $$ \text{freq\_word} = \left\lfloor \frac{500,000 \times 2^{32}}{100,000,000} \right\rfloor = 21474836.5 \approx 21474837 \quad (0x0147AE15) $$ --- ## 七、仿真与综合 1. 在 Vivado 中点击 **Run Synthesis** 和 **Run Implementation**。 2. 使用仿真工具(如 xsim)进行功能仿真,验证输出是否为期望频率的正弦波。 3. 生成比特流(bitstream)并下载到 FPGA 中进行验证。 --- ##
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值