首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏FPGA开源工作室

    Vivado DDS IP核仿真

    1 DDS IP概述 直接数字合成器(DDS)或数控振荡器(NCO)是许多数字通信系统中的重要部件。 •3位至26位带符号输出采样精度 IP 文档连接:PG141 2 DDS IP 架构 3 DDS IP 配置 (1)Component Name 可以修改IP核名字 (2)Configuration 100MHz;通过系统时钟除以通道数得到每通道的频率; (6)Parameter selection (参数选择) system parameters;系统参数,为了更精确的输出任意频率,选择系统参数模式; (7DDS_top: module dds_top( input wire aclk, input wire reset_n, output valid, output signed [7:0] sin, output signed [7:0] cos ); wire s_axis_phase_tvalid; wire [31 : 0] s_axis_phase_tdata

    1.2K10编辑于 2024-02-22
  • 来自专栏机器人课程与技术

    ROS2+DDS+RTPS

    安装: zhangrelay@LAPTOP-5REQ7K1L:~$ sudo apt install ros-humble-rmw-fastrtps-cpp [sudo] password for zhangrelay DDS 使用 QoS 来定义 DDS 实体的行为特征。 QoS 由单独的 QoS 策略(源自 QoSPolicy 的类型的对象)组成。这些在政策中有所描述。 DDS 域由域 ID 标识。 DomainParticipant 定义域 ID 以指定它所属的 DDS 域。具有不同 ID 的两个 DomainParticipants 不知道彼此在网络中的存在。 此外,Fast DDS 还支持 TCP 和共享内存 (SHM) 传输。 它旨在支持单播和多播通信。 在继承自 DDS 的 RTPS 顶部,可以找到域,它定义了一个单独的通信平面。 您可以继续阅读 RTPS 层部分,了解更多关于快速 DDS 中 RTPS 协议的实现。 ----

    1.4K20编辑于 2022-06-27
  • 来自专栏Lauren的FPGA

    DDS Rasterized模式怎么用?

    直接数字频率合成器(DDS: Direct Digital Synthesizers)又称数字压控振荡器(NCO: Numerically Controlled Oscillator)在数字通信系统中被广泛使用 AMD提供了专门的DDS IP,用户只需根据设计需求进行定制。 这个IP有两种工作模式:Rasterized模式和Standard模式,如下图所示,可通过Mode Of Operation进行设定。 我们先了解一下DDS的工作原理,如下图所示,DDS由两部分构成:相位累加器和相位波形转换器。前者根据给定的初始相位和相位步进值输出目标相位值,后者又称波形存储器,根据输入的相位值输出对应的幅度值。 我们看一个案例,系统工作频率200MHz,模值M=1000,输出信号频率5MHz,故可得 基于此,DDS IP的参数配置如下图所示: 在Summary页面可以看到整体信息,这里需要注意无杂散动态范围SFDR 实际上,根据DDS的工作原理,除了可以输出正弦信号之外,还可以输出其他波形的信号。无需其他额外逻辑,在上述参数配置的情况下,相位累加器的输出将呈现锯齿波,而相位累加器的最高位将呈现方波,如下图所示。

    64721编辑于 2024-02-06
  • 来自专栏FPGA开源工作室

    基于LUT的DDS的设计

    基于LUT的DDS的设计 DDS(Direct Digital Synthesis)直接数字频率合成技术由USA J.Tierncy首先提出。 DDS主要出现在数字混频系统中。在数字混频中,通过DDS产生正交的本地振荡信号即正、余弦信号与输入信号相乘实现频谱搬移,如通信系统的调制、解调。 1 基于LUT的DDS理论 一个典型的基于LUT的DDS系统由相位累加器和波形存储器两部分构成,如图1所示。图中相位累加器的位宽为nbit,步进值为μ,LUT的深度N为2n,宽度为Lbit。 tb_dds源码: 1. `timescale 1ns / 1ps 2. `define NULL 0 3. module tb_dds(); 4. 5. parameter KHZ1 =44; 6. parameter KHZ2 =22; 7. parameter

    1.2K10发布于 2019-10-29
  • 来自专栏机器人课程与技术

    ROS2之DDS问题汇集

    333 见过类似的问题,不是每个网络都有,但主要是无线网状网络有许多无线 AP 相互通信,其中 ROS2/DDS 流量导致它停止运行。

    1.3K20编辑于 2022-08-10
  • 来自专栏OpenFPGA

    Xilinx DDS Compiler IP 使用教程

    该输入值决定了输出波形的频率,值越小,DDS 通过正弦查找表的步进越慢,输出波形的频率越低。相反,输入值越高,DDS 步进查找表的速度越快,输出波形的频率也越高。 在加ILA的时候,一共加了4个探头监测DDS从接口的输入相位增量值和DDS主接口的输出数据和相位值。将芯片的深度设置为 65536。 实例化 ILA 和 DDS IP 后,编写了简单状态机来创建 AXI Stream 接口,将相位增量值输入到 DDS,然后等待 1 us,然后将 1MHz 步长添加到相位增量值并将其输入到DDS。 第三张图是输入到 DDS 的相位增量值。 底部的十六进制值只是状态机状态,用于演示每个状态如何与 DDS 控制关联。 ://docs.xilinx.com/v/u/en-US/pg141-dds-compiler 总结 希望这个简单的 DDS 示例对您有所帮助。

    2.6K31编辑于 2023-02-14
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    【AngularJS】—— 7 模块

    AngularJS有几大特性,比如:   1 MVC 2 模块化   3 指令系统   4 双向数据绑定 那么本篇就来看看AngularJS的模块化。    首先先说一下为什么要实现模块化:   1 增加了模块的可重用性   2 通过定义模块,实现加载顺序的自定义   3 在单元测试中,不必加载所有的内容   之前做的几个例子,控制器的代码直接写在script 下面看看如何进行模块化: <script type="text/javascript"> var myAppModule = angular.module('myApp 第二个参数[]里面标识了依赖的模块。   下面看看如何使用模块吧! <! 在script中,我们通过模块创建了一个filter和一个控制器。   filter的作用是 添加字符串修饰。   控制器的作用则是初始化变量。   程序的运行结果如下: ?

    66750发布于 2018-01-17
  • 来自专栏编程

    Python模块知识7:XML

    gradechild.tag,'3级节点内容:',gradechild.text) 效果: 解析XML的两种方式: 1、解释字符串,无ElementTree,自己打开文件拿到,或者发送request模块拿到返回值

    83670发布于 2018-01-11
  • 来自专栏有趣的django

    7.python常用模块

    >>> import random >>> random.random() # 0~1 随机浮点数 0.6990063739837862 >>> random.randint(1,7) #随机整数 1~7 5 >>> random.randrange(1,7) #随机整数,不包括7 4 >>> random.choice('hello world') #获取一个随机元素 'l' >>> random.choice ,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 shutil模块 高级的 文件、文件夹、压缩包 处理模块 shutil.copy(src, dst ={'name':'alvin','age':23,'sex':'male'} 4 print(type(dic))#<class 'dict'> 5 6 j=json.dumps(dic) 7 re模块 ?

    1.6K110发布于 2018-04-11
  • 来自专栏开源FPGA

    基于Vivado调用ROM IP core设计DDS

    DDS直接数字式频率合成器(Direct Digital Synthesizer)   下面是使用MATLAB生成正弦波、三角波、方波的代码,直接使用即可。 fprintf(fid,'MEMORY_INITIALIZATION_RADIX=10;\n'); 6 fprintf(fid,'MEMORY_INITIALIZATION_VECTOR=\n'); 7 这是DDS的原理图,DDS并没有像它的名字一样说的那么玄乎,它的核心便是控制频率的fword字输入,和相位字pword输入,最后调用IP核查找表即可,代码也十分简单,下面给出DDS design代码。 1 module DDS( 2 input mclk, 3 input rst_n, 4 input [31:0]fword ,//frequency control 5 input [11:0]pword,//phase control 6 7

    1.7K50发布于 2018-01-05
  • 来自专栏python3

    Python学习笔记7——文本、模块

    模块(module)也是为了同样的目的。在Python中,一个.py文件就构成一个模块。通过模块,可以调用其它文件中的程序。    引入模块后,可以通过模块.对象的方式来调用引入模块中的某个对象。上面例子中,first为引入的模块,laugh()是我们所引入的对象。 Python中还有其它的引入方式, import a as b             # 引入模块a,并将模块a重命名为b from a import function1   # 从模块a中引入function1 调用a中对象时,我们不用再说明模块,即直接使用function1,而不是a.function1 from a import *           # 从模块a中引入所有对象。 · 模块包 可以将功能相似的模块放在同一个文件夹(比如说this_dir)中,构成一个模块包。通过 import this_dir.module 引入this_dir文件夹中的module模块

    45310发布于 2020-01-19
  • 来自专栏EMQ 物联网

    QUIC 双向认证、DDS 代理功能升级

    } }NanoMQ 的 MQTT over TCP 部分采用的是 MbedTLS 库进行加解密,与标准的 TCP 连接不同,QUIC 部分采用的是 MsQUIC 子模块项目内置的 forward_rules = { ## DDS to MQTT dds_to_mqtt = { from_dds = "MQTTCMD/topic1" to_mqtt = "DDS/topic1" struct_name = "remote_control_result_t" } ## MQTT to DDS mqtt_to_dds 目前虽然有了自动化代码生成工具,但 DDS Porxy 功能编译安装过程较为繁琐,对于不熟悉工程结构和 DDS 操作的用户来说比较困难。 此功能的讨论:点击查看在 NanoNNG 模块中更新了新的 nng_mqtt_quic_open_conf API 用于开启 QUIC 连接。

    2K50编辑于 2023-04-07
  • 来自专栏C++开发学习交流

    【C++】DDS:FastDDS环境配置与使用示例

    :https://fast-dds.docs.eprosima.com/en/latest/ FastDDS的前身是Fast-RTPS,实现了许多 DDS 规范。 4.多语言支持:Fast DDS 支持多种编程语言,包括 C++、Java、Python 等,使得开发人员可以在不同的编程环境中使用 Fast DDS 进行开发。 下载地址:https://www.eprosima.com/index.php/component/ars/repository/eprosima-fast-dds/eprosima-fast-dds- /dds/publisher/Publisher.hpp> #include <fastdds/dds/publisher/DataWriter.hpp> #include <fastdds/dds/publisher /dds/subscriber/Subscriber.hpp> #include <fastdds/dds/subscriber/DataReader.hpp> #include <fastdds/dds

    7.1K11编辑于 2024-07-24
  • 来自专栏云深之无迹

    迷人的DDS数字下变频(YUNSWJ 仿真版)

    亲爱的看官,昨天后半夜没忍住,写了一个高速 ADC,其实表面参数之外,还有很多值得研究的东西,比如这么大的采样率,后面究竟在处理什么?

    23410编辑于 2026-01-07
  • 来自专栏烂笔头

    Python标准库笔记(7) — copy模块

    目录[-] copy-对象拷贝模块;提供了浅拷贝和深拷贝复制对象的功能, 分别对应模块中的两个函数 copy() 和 deepcopy()。

    1.3K80发布于 2018-04-04
  • 来自专栏C++开发学习交流

    【C++】DDS:OpenDDS环境配置与使用示例

    Distribution Service)是一个开源的、高性能的实时数据分发和通信框架,符合OMG(Object Management Group)发布的Data Distribution Service(DDS

    2K10编辑于 2024-07-24
  • 来自专栏机器人课程与技术

    ROS2编程基础课程--DDS

    ROS 2和不同的DDS / RTPS供应商 ROS 2 is built on top of DDS/RTPS as its middleware, which provides discovery 本节详细介绍采用DDS实现和(或)DDS的RTPS有线协议的缘由,但先总述一下,DDS是一个端到端的中间件,它提供了ROS系统相关的功能,例如分布式发现(并不是ROS 1采用的集中式,如roscore) 供应商可能会提供多个针对满足不同需求的DDS或RTPS实现版本。 对于每个策略,还有“system default”选项,它使用可以通过DDS供应商工具(例如XML配置文件)定义的底层中间件的默认值。DDS本身具有可以配置的更广泛的策略。 虽然ROS 2为常见用例提供了一些QoS配置文件,但使用DDS中定义的策略允许ROS用户利用现有DDS文档的庞大知识库来为其特定用例配置QoS配置文件。

    1.7K41发布于 2019-09-18
  • 来自专栏机器人课程与技术

    ROS2和DDS學習筆記

    參考資料鏈接: ROS on DDS:http://design.ros2.org/articles/ros_on_dds.html ROS 2 and different DDS/RTPS vendors :https://index.ros.org/doc/ros2/Concepts/DDS-and-ROS-middleware-implementations/ ROS2 + DDS: When ROS2 and DDS? More technical Pub/Sub model difference between ROS and DDS DDS Participant, topic, publisher, subscriber but not using the ROS2 API over DDS.

    1.4K30发布于 2019-08-15
  • 来自专栏FPGA技术江湖

    源码系列:基于FPGA的任意波形发生器(DDS)设计(附源工程)

    设计架构 根据上述的原理图分析,本设计的架构如下图: 架构图中的端口功能描述如下表: dds_addr模块是实现相位累加器的模块,这里用参数来调制FWORD和PWORD的值,累加之后,将地址高八位(addr_out dds顶层模块代码: module dds (clk, rst_n, q); input clk, rst_n; //系统时钟复位 output [7:0] q; //输出波形数据 wire [7:0] addr_out; //8位地址,对应到ROM内的数据 /*****相位累加器模块*****/ dds_addr dds_addr_inst( .address ( addr_out ), .clock ( clk ), .q ( q ) ); endmodule 仿真测试 dds_tb顶层模块的测试模块: `timescale 1ns/1ps module dds_tb; reg clk, rst_n; wire [7:0] q; initial begin clk = 1; rst_n

    75310编辑于 2025-01-02
  • 来自专栏Postgresql源码分析

    Postgresql源码(7)热备KnownAssignedTransactions子模块

    在热备模式下,我们在 WAL 的当前点维护一个正在(或曾经)在主服务器中运行的事务列表。 这些 XID 必须被视为运行中的事务,即使它们不在备用服务器的 PGXACT 队列中。

    36660编辑于 2022-05-12
领券