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 ////////////////////////////////////////////////////////////////////// ...
随机推荐
- [Eclipse]保存java文件时,自动删除不需要的包import
1.修改设定:Window->Preferences 2.效果: =>
- Web应用体系结构
容器 Servlet没有main()方法,它们受控于另一个Java应用,这个Java应用称为容器(Container).我们最常见的tomcat就是这样一个容器. Web服务器应用(如Apache)得 ...
- centos双机热备份
centos双机热备份 本机没有用到F5硬件,用到的是radware. 现在有2台服务器:192.168.2.66, 192.168.2.67 有一个公网ip:xxx.xxx.xx.203 将67上冷 ...
- Ansible 开发调试 之【模块调试】
本地调试 需要安装jinja2 库 yum -y install python-jinja2 使用官方提供的测试脚本调试 git clone git://github.com/ansible/ansi ...
- eclipse背景设置什么颜色缓解眼睛疲劳之一
Eclipse操作界面默认颜色为白色.对于我们长期使用电脑编程的人来说,白色很刺激我们的眼睛,如果把颜色改成绿色的颜色就会缓解眼睛的疲劳. 设置方法如下: 1.打开window->Prefere ...
- CSS3径向渐变linear-gradient
语法: 选择器{ background:linear-gradien(线性渐变的方向,起点颜色,终点颜色): } 第一个参数:[可选参数,默认从上到下] 线性渐变的方向:top,bottom,left ...
- 【css】25个漂亮的响应式布局的web设计【转】
响应的web设计的做法是提高用户的浏览质量,并在不同设备上能够完美的浏览使用,就像大前端推出的D7主题.看看下面美丽的响应的网站布局,通过本文你会在以后的设计中找到响应的web设计的灵感. 1.Mar ...
- mysql服务1067错误:修改mysql可执行文件路径
今天遇到mysql服务1067错误的问题,设置使用系统账户也无法启动mysql,后面认证看了系统的配置信息,发现启动文件也就是mysql安装路径是之前的(也说明之前安装mysql,没去卸载直接安装新的 ...
- LINUX系统下的数据库的管理
环境:配置好IP和YUM源 一.数据库的安装及密码的修改 [1]yum install mariadb-server -y ##安装mariadb数据库 [2]systemctl ...
- 一个浮动 css3效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...