psoc做dds
今天用psoc做了dds,现在总结一下。
1dds用到的相位累加器是用verilog写的,本来准备用一下datapath,这是和fpga不一样的一点,用了类似alu的结构,但是看手册后发现,虽然可以执行加法操作,但是1)位数固定,只能1,8,16,32等固定长度的数做加法。2)最重要的一点,加法结果不能输出。所以采用pld模块。添加一个自定义verilog模块的方法如下:
1)在workspace explorer 里有几个标签:soure,components, datasheet,results,在建好工程后需要添加一个自定义模块的时候需要点components标签,在workspace上右键选择 add-》new project 选择other 名字,位置写好之后ok。
2)在新建的project上右键选 new component 选择 symbol wizard 然后点create new之后会出现下面的界面

在空白处添加信号和类型,如果是多位的信号就要写成 signal[m:n]的形式,如data[3:0]就表示是4位宽的信号。
信号添加完成后就会得到一个空壳子,只有输入输出的一个方框,类似下面的图形。

在空白处点击右键选择 properties,出现如下所示界面

这个里边symbol项里的内容需要修改,如api函数前缀,看自己需要可以改可以不改,第二项也就是catalogplacement比较重要,这个是你生成的元件在库里的位置,看需要放到哪里,个人习惯不同。
改好之后就ok,之后还是在空白处右键,不过这次是选 generate verilog,别激动,这只生成一个verilog 框架,你需要什么功能就自己写verilog 实现,然后保存。
3)依赖关系设置,这一步是将verilog模块设置成工程的依赖工程。在目标工程上右键点击dependencies 然后在刚才生成的库工程上打勾,这样就会把两个工程关联,并且存在依赖关系,这时候返回source标签打开原理图,之后在右边出现的库里边会多出来你自定义的组件,就可以拖到原理图里使用了,但是如果不设置依赖关系的话,可是找不到你自定义的组件的。
2,在psoc里边数字模块好多都没有api函数,那么如果我要想用软件调用怎么办呢?比如数字复用器,就不能生成api函数,那么我想通过软件操作来改变选择的通道就不行,但是可以在通道选择线上接控制寄存器,这样就可以通过控制寄存器的api函数改变控制寄存器的值进而改变选择的通道。同理,如果cpu想知道一个数字模块的输出,那么就在输出上加状态寄存器,通过读取状态寄存器就可以了。
3,psoc里边的连线很有意思,一个数据bus,怎么才能分成一根一根的信号线呢?方法是:先连线,连线完了之后再设置线的属性,如下图

可以选择bus型,那么就需要设置位宽了,也可以设置成bit型,指的就是bus里边的第几位。
4,psoc里的查找表一个最多5输入8输出,那么也就是说能够存32个8bit的数据,如果想要更多,可以把几个lut并联起来。
5,我用的是psoc4,里边只有idac,没有vdac,所以不能做数字转模拟的波形,有点遗憾。
6,使用的是psoc4的一个stick开发板,信号是CY8CKIT-049-42XX片子是CY8C4245,这个开发板下载程序是用的bootloader,自己建的每一个程序需要设置类型为bootloadable,在原理图上需要加上bootloadable模块,在bootloadable的dependence选项中选择bootloader的源文件。下载的时候在菜单栏选tool-》bootloader host。需要注意的是开发板驱动在win7下可以自动安装,在下载程序时需要按着板子尾部的按键将板子插入u口里,否则无法下载程序。
psoc做dds的更多相关文章
- ROM存储1/4周期正弦信号构造DDS
上周的时候,老师让编写一个简单的dds程序,本文说明了整个过程中我遇到问题以及一些个人的思考.初次接触FPGA,如有问题请多多指教~ 1.几个疑问,解决和没有解决的. 为何采用ROM而不是直接采用DD ...
- 使用MATLAB一键制作mif文件
本文档主要讲解实现一个16384(2^14)点的14位正弦波数据mif格式文件的生成,使用此文件,我们便可以在FPGA上基于直接数字合成(DDS)原理生成标准的正弦波,即实现信号发生器的功能.关于DD ...
- 国产CPLD(AGM1280)试用记录——做个SPI接口的任意波形DDS [原创www.cnblogs.com/helesheng]
我之前用过的CPLD有Altera公司的MAX和MAX-II系列,主要有两个优点:1.程序存储在片上Flash,上电即行,保密性高.2.CPLD器件规模小,成本和功耗低,时序不收敛情况也不容易出现.缺 ...
- 基于DDS的任意波形发生器
实验原理 DDS的原理 DDS(Direct Digital Frequency Synthesizer)直接数字频率合成器,也可叫DDFS. DDS是从相位的概念直接合成所需波形的一种频率合成技术. ...
- 用verilog模拟DDS产生正弦波信号
前言: DDS:直接数字频率合成,正弦波0-2pi周期内,相位到幅度是一一对应的(这里我们使用放大后的整数幅度). 主要思路: 个人理解,FPGA不擅长直接做数字信号计算,那样太占用片上逻辑资源,所以 ...
- PSoC电容式触摸感应技术
PSoC是由Cypress半导体公司推出的具有数字和模拟混合处理能力的可编程片上系统芯片,某些系列的PSoC(如CY8C21X34系列),由于其内部配备的特殊资源,使得它可以很容易地实现电容式触摸感应 ...
- 基于Vivado调用ROM IP core设计DDS
DDS直接数字式频率合成器(Direct Digital Synthesizer) 下面是使用MATLAB生成正弦波.三角波.方波的代码,直接使用即可. t=:*pi/^:*pi y=0.5*sin ...
- 数字信号处理专题(1)——DDS函数发生器环路Demo
一.前言 会FPGA硬件描述语言.设计思想和接口协议,掌握些基本的算法是非常重要的,因此开设本专题探讨些基于AD DA数字信号处理系统的一些简单算法,在数字通信 信号分析与检测等领域都会或多或少有应用 ...
- DDS生成正弦波
DDS生成正弦波 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////// ...
随机推荐
- 【转】python操作mysql数据库
python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...
- java网络编程之图片上传
输入输出流核心代码 所有的文件传输都是靠流,其中文件复制最具代表性.输入流和输出流,从输入流中读取数据写入到输出流中. InputStream in = 输入源; OutputStream os = ...
- 第九天 1-8 RHEL7软件包管理
在RHEL7中,主要有 RPM 和 YUM 两种包管理 1.RPM包管理--使用rpm命令对rpm软件包进行管理rpm命令格式:[有很多,自己可以man一下,这里只列举一下常用的]rpm -ivh [ ...
- opencv颜色提取color filting
# -*- coding: utf-8 -* import numpy as np import cv2 cap = cv2.VideoCapture(0) while True: _ , frame ...
- Windows 下配置Git
在Windows上安装git很长时间了,一直都没有配置,就是简单的使用.当然配置后就可以在任意目录下使用git命令.其实就是配置下git的环境变量. 首先,当然下载windows版本:点我下载 安装直 ...
- OpenStack Mitaka Neutron SR-IOV配置
### 一.在所有节点(控制节点.计算节点) 1.修改BIOS ``` BOIS里面开启SR-IOV功能 开启 VT-d (inter virtualization technology)和 SR-I ...
- Ansible 手册系列 二(安装)
通过yum(CentOS, RHEL)安装 系统版本: CentOS7.2 yum install ansible -y 通过pip安装 安装easy_install # 安装easy_install ...
- 使用samba初始化开发环境
一.系统环境 [root@host-172-20-3-66 samba]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 搞 ...
- (转载)设置环境变量永久生效和临时生效 export PS1
source/etc/profile是让/etc/profile文件修改后立即生效, 还有一种方法是:. /etc/profile 注意:.和/etc/profile有空格 linux中source命 ...
- inline-block 文字与图片不对齐
文字旁边搭配图片时,发现图片比文字靠上,原来默认的情况是图片顶对齐而文字底对齐,通过设置css属性可以使得图片与文字对齐. 设置各对象的vertical-align属性,属性说明: baseline- ...