FPGA采集adc,IP核用法,AD驱动(上半部分)

news2024/10/17 6:21:12

未完结,明天补全

IP核:集成的一个现有的模块

串口写好后基本不会再修改串口模块内部的一些逻辑,将串口.v文件添加进来,之后通过他的上层的接口去对他进行使用,所以我们打包IP,之后就不用去添加源文件了,

IP Catalog ->集合;里面就是我们所有可以调用的集合

fft:快速傅里叶变换

如果创建了一个IP之后,我们就可以直接调用这个模块,这个模块里的功能都是完成了的,我们只需要对接口进行例化就行

对于我们要使用的串口模块,我们要把我们的控制信号给列举出来

把通信信号也列举出来

然后就是时钟复位信号clk,rstn

以及定义的两个参数:时钟频率SYSCLK_FREQ,波特率BUAD_RATE

在调用的时候也要给一些参数,可以改变串口IP的波特率

创建一个自己的IP:

block design就是一个画布

IP管理页面:

File Groups:文件组

Synthesis:可综合文件

当我们自己创立IP时,我们也可以通过我们输入的一些参数对IP进行配置,当我们这样去定义出来,例如

在打包IP时它会自动的给你识别成一个上层可配置的一个参数,就会给你在这儿列举出来

右键->添加一个总线接口,因为串口是已经有了总线不是没有总线

PortMap:端口的映射

串口协议中,其它信号可有可无,但Txd和rxd是必须要有的

因为我们并不是一个有地址的,有寄存器的总线协议,所以我们这边并没有一个地址映射

IP识别成功:

采用OC的一个IP:编译好后就不会再改变

实现:当串口发送一个特定值的时候,我的DAC的输出就是我的ADC的输入,就是我将我采集到的输出出去,否则的话就是如果发送的不是特定的值,或者是没有发送值,我的DAC就会输出一个正弦波

uart_0.veo :verilog语言的端口例化

端口例化时输入一般要给,输出可以不连

输入如果不连的话,我们一般要给个定值,没有输入就会导致内部的话就是一个未知状态

降频倍频:clock的IP

Docnav:赛灵思的文档,不仅是IP文档,还包括了软件使用,fpga的学习,各种各样的文档

Minimize Power:最小功耗

Minimize Output Jitter:最小输出抖动

系统时钟:

output clocks

若高电平复位:reset

若低电平复位:resetn

MMCM可以支持1/8的小数分频,并且只在out1里面有,PLL不支持

生成一个时钟模块:

有些IP提供test bench,有些只有例程工程

前面这段时间输出的时钟还没有到稳定状态,所以锁是拉低的,当锁拉高时,说明我们后面的时钟输出是一个稳定状态的,后面的时钟是一定可以用的

给的例程:直接去看IP,它是怎么去进行接口的输入输出的,然后我们就可以进行控制

当复位和锁同时为高的情况下,时钟是可以用的

将复位信号和锁的信号给&上,这样的话作为我们整体的复位信号

默认情况下输出正弦波,当我们的串口输入某个特定的值,那我就要dac输出一个我adc采集到的数据,如果接收到其它非特定值,那我继续输出正弦波

对于一块ROM储存空间:我将我的正弦波一个周期给存进去,输入我的地址,它输出我的当前地址对应的值,改变我的地址,输出我对应的值,地址不断的这样去反复的累加,输出的值就会是一个正弦的波形

Distributed memory generator:分布式ram//LT搭建

block memory generator:块//现有

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2216859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pollard‘s p-1算法

概述 光滑数 (Smooth number):指可以分解为多个小素数乘积的正整数 当p是N 的因数,并且p−1是光滑数,可以考虑使用Pollards p-1算法来分解N 当p是N的因数,并且p1是光滑数,可以考虑使用Williamss p1算法来分解N 这里…

Java 快速排序算法详解及通用实现模板案例示范

1. 引言 在众多排序算法中,快速排序(QuickSort) 是一种非常经典且高效的算法。它采用“分治法”的策略,通过递归地将数组分割成更小的部分,从而快速完成排序操作。快速排序的平均时间复杂度为 O(n log n),…

webpack 学习入门

webpack 1. 简介1.1 webpack 是什么1.2 webpack 五个核心概念1.2.1 入口 - Entry1.2.2 出口 - Output1.2.3 Loader1.2.4 插件 - Plugins1.2.6 模式 - Mode 2. webpack 初体验2.1 初始化配置2.1.1. 准备2.1.2. 写代码2.1.3 编译打包应用 3. webpack 开发环境的基本配置3.1 打包样…

《深度学习》OpenCV EigenFaces算法 人脸识别

目录 一、EigenFaces算法 1、什么是EigenFaces算法 2、原理 3、实现步骤 1)数据预处理 2)特征提取 3)构建模型 4)识别 4、优缺点 1)优点 2)缺点 二、案例实现 1、完整代码 运行结果&#xff…

大学新生编程入门指南:如何选择编程语言与制定学习计划

大学新生编程入门指南:如何选择编程语言与制定学习计划 编程已成为当代大学生的必备技能,尤其是在信息技术高速发展的今天,编程能力不仅能帮助你在课堂学习中脱颖而出,更能为未来职业生涯打下坚实的基础。然而,面对如…

The 48 bit pointer

在 Intel CPU 和 Arm CPU 中&#xff0c;用户空间的指针地址默认都只使用低 48 位&#xff0c;高16 位总是 0。 写一小段代码验证下&#xff1a; #include <stdio.h> #include <memory.h> #include <stdlib.h>void o(long long ptr) {printf("%016p: &…

如何通过CDN优化网站服务器访问速度?

CDN&#xff0c;即内容分发网络&#xff08;Content Delivery Network&#xff09;&#xff0c;在现代互联网中起着重要作用。它可以显著提升网站服务器的访问速度。以下是CDN在加速网站访问方面的主要优势及其工作原理。 1. 全球分布的服务器节点 CDN通过在全球范围内布设多个…

mysql的重置

今天用Navicat16去连接mysql突然就连不上了。一直报错 连接本地mysql时出现2003-Can‘t connect to MySql server on ‘localhost‘(10061)错误。 以为是Navicat过期了。正好Navicat推出了Lite 17免费版本&#xff0c;心想正好可以尝尝鲜&#xff0c;而且还支持连接Redis&#…

C++:Boost的安装和使用

1、Boost简介 Boost的本质就是一个开源C库&#xff0c;它包含多种功能强大的模块&#xff0c;如&#xff1a;字符串文本处理模块、容器、算法、多线程、智能指针、线程池等模块 2、Boost的下载和安装 &#xff08;1&#xff09;Boost下载 官网&#xff1a;http://www.boost…

【JAVA毕业设计】基于Vue和SpringBoot的医院电子病历管理系统

本文项目编号 T 008 &#xff0c;文末自助获取源码 \color{red}{T008&#xff0c;文末自助获取源码} T008&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 医…

股票分析软件设计

设计一个功能齐全的股票分析软件是一个复杂且有挑战性的项目&#xff0c;需要综合运用多种编程技术和金融知识。下面是一个总体设计思路和主要功能模块的概述&#xff1a; 主要功能模块&#xff1a; 1. 用户界面&#xff08;UI/UX&#xff09; - 显示K线图&#xff0c;并允许…

西门子变频器SINAMICS V20选型

SINAMICS V20共有五种外形尺寸可供选择&#xff0c;输出功率覆盖0.12kW-30kW&#xff1a; V20订货号 单相230V&#xff1a; 三相380V&#xff1a;

数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 噪声调频干扰 4.2 线性调频干扰 4.3 噪声干扰 4.4 扫频干扰 4.5 灵巧干扰 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3…

数据结构——单链表的基本操作

前言 介绍 &#x1f343;数据结构专区&#xff1a;数据结构 参考 该部分知识参考于《数据结构&#xff08;C语言版 第2版&#xff09;》29~36页 补充 后序代码中会遇见这个结构体 typedef struct LNode { ... }LNode,*LinkList; 对于这个代码&#xff0c;目的是定义线性表…

【云原生kubernetes系列--coredns篇】

1.corednsd的介绍 官网&#xff1a;https://coredns.io/ CoreDNS是一个灵活、可扩展的 DNS 服务器&#xff0c;可以充当 Kubernetes 集群 DNS。与 Kubernetes 一样&#xff0c;CoreDNS 项目由 CNCF coredns在K8S中的用途,主要是用作服务发现&#xff0c;也就是服务(应用)之间…

Python中 文件操作及与数据库的交互

在数据驱动的时代&#xff0c;Python不仅是一门强大的编程语言&#xff0c;更是与文件系统和数据库交互的重要工具。无论是读取配置文件、处理数据集&#xff0c;还是与数据库进行交互&#xff0c;Python都能轻松胜任。那么&#xff0c;如何高效地进行文件操作&#xff0c;并实…

uniapp 小程序0到1教程

先说明一下&#xff0c;uni-app的文档很乱 一、注册微信小程序 如果你还没有微信公众平台的账号&#xff0c;请先进入微信公众平台首页&#xff0c;点击 “立即注册” 按钮进行注册。注册的账号类型可以是订阅号、服务号、小程序以及企业微信&#xff0c;我们选择 “小程序”…

基本计算器 II

文章目录 题目解析解题小结 题目解析 给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意&#xff1a;不允许使用任何将字符…

lazyLoad

//1.通过React的lazy函数配合import()函数动态加载路由组件 > 路由组件代码会被分开打包 const Login lazy(()>import(/pages/Login)) //2.通过<Suspense>指定在加载得到路由打包文件前显示一个自定义loading界面 <Suspense fallback{<h1&…

Arduino配置ESP32环境

Arduino配置ESP32环境 引言一、IDE下载教程操作取巧方法 二、社区安装包三、官方手动安装 引言 最近入手了一款ESP32-C3的开发板&#xff0c;想继续沿用现有Arduino IDE&#xff0c;网上看了很多方法&#xff0c;大致分了三类&#xff1a;IDE下载、社区安装包、github手动配置…