自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力为了更好

DSP和FPGA控制算法的实现

  • 博客(35)
  • 收藏
  • 关注

原创 PLL、DLL和DCM的解释及应用

三者的共同功能:1.消除时钟延迟;2.频率合成(倍频和分频);3.时钟校正(可编程占空比和相移)一、PLLPLL ,相位锁定环,是一种反馈系统,由鉴相器、电荷bang、环路滤波器和压控振荡器以及反馈分频器组成,基本结构如下图:可看作标准的负反馈系统。电压振荡器Vco和鉴相器相互连接,使得振荡器相对于参考信号维持恒定的相位角度。当使用pll生成高于输入的频率,Vco会以角频...

2019-08-07 19:41:02 3190

原创 Modelsim 仿真报错之无法看到波形

前言:Modelsim对语法要求比较严格,有时语句顺序颠倒也会使仿真无法得到波形。例如下图:出现上述现象的原因是,在testbench文件中语序不对会使仿真出现问题,解决办法是将红圈中的声明移到例化上方。解决好的波形如下:注意注意,语序语序很重要,将端口声明放在模块例化之前!!!...

2019-08-07 15:19:17 3496

原创 顶层文件中报错端口类型声明错误

错误:Error (10663): Verilog HDL Port Connection error at PLL_LED.v(18): output or inout port "Led" must be connected to a structural net expression首先声明:由于模块内部的限制,input端口或inout端口的默认类型是wire,;output端口可...

2019-08-07 12:03:25 4730 1

转载 【转】QII调用 PLL的IP核

step1 这里我新建一个名为PLL的工程如下所示,准备调用一个PLL核step2 点击菜单栏上的TOOls下拉菜单中的魔法棒step3 在弹出的对话框中点击Nextstep4 这里我们选择输出文件类型选择为Verilog HDL,输出IP核名称为PLL_out,单击I/0下拉选择ALTPLL。(注意:这里我的工程名为PLL所以起的PLL核的名称...

2019-08-06 19:54:12 488

原创 线与逻辑与OC门、OD门关系

线与逻辑:两个或多个输出信号连接在一起可以实现逻辑“与”的功能。以下图为例:当与非门G1和G2输出都为1时,输出L才为1;只要有一个输出为0,则输出L为0。在硬件上,要用OC门(三极管,集电极开路)或OD门(NMOS,漏极开路)来实现。另外,为了防止灌电流过大,在输出端要加1个上拉电阻。我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么...

2019-08-06 19:29:52 27779

原创 同步逻辑和异步逻辑定义

同步逻辑:整个设计中只有一个全局时钟成为同步逻辑。只有时钟脉冲同时到达各记忆元件的时钟端,才能发生预期改变。同步逻辑是时钟之间有固定的因果关系。异步逻辑:多时钟系统逻辑设计成为异步逻辑。电路状态改变由输入信号引起。异步逻辑是各时钟之间没有固定的因果关系。 同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。改变...

2019-08-06 17:06:37 3535

原创 异步FIFO理解及代码实现

相对于同步FIFO,内部读写时钟是同一个时钟源,异步FIFO,内部读写时钟是独立的。所以,异步FIFO的参数有:宽度:每个数据的位数;深度:FIFO最多能存储多少个N位的数据。还有Din:输入nWr:写使能Wr_Clk:写时钟nRd:读使能Rd_Clk:读时钟Dout:输出;Buff:缓存以下是异步FIFO的实现:/*功能定义:用来实现异步FIFO;...

2019-08-06 15:38:26 977

转载 汇总:FPGA综合时警告

2019-08-05 16:29:21 532

转载 FPGA学习规划

前言仅以本帖,记录自己的学习历程及未来的方向。刚入职做FPGA研发1年,也不知道自己的发展方向。所以,从FPGA接口通信入手,慢慢学习和了解吧。希望自己逐步积累和掌握以下几个方向从业的基础知识,并具有一定的研发能力。主要方向分以下个方向:(1)接口通信类: 简单通信接口SPI/UART/IIC, 复杂一点的SDR SDRAM控制器设计、...

2019-08-05 13:31:34 4007 4

转载 同步复位、异步复位定义以及异步复位和同步释放的解释

一、特点: 同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。用Verilog描述如下: always @ (posedge clk) begin if (!Rst_n) ... end 异步复位:它是指无...

2019-08-05 10:17:31 8724

原创 Verilog 检测连续二进制序列 11001101,检测输出1,否则输出0

/* 功能定义:一段式FSM产生连续二进制序列检测*/module Fre_Check(Clk,Rst_n,Din,Dout); input Clk; input Rst_n; input Din; output reg Dout; reg [3:0] Next_State; parameter IDLE = 0, st0 = 1, st...

2019-08-05 08:52:46 3288 1

原创 亚稳态定义、原因及解决方案

亚稳态定义:触发器的输出在某段时间内无法达到确定的状态,即无法预测输出的电平,也无法预测何时稳定。一旦出现亚稳态,触发器的输出将在较长时间内处于震荡状态(毛刺),这段时间叫做决断时间(resolution time)。亚稳态出现原因:触发器无法满足建立时间Tsu和维持时间Th。亚稳态一般出现在异步电路中,同步电路由于出现输入和时钟同步变化,一般亚稳态发生在跨时钟传输、异步信号采集和...

2019-08-03 22:02:35 4194

原创 建立时间、保持时间和输出相应时间

首先放一张触发器的图:其时序图为:建立时间Tsu:触发器时钟上升沿到来之前,数据保持不变的时间;保持时间Th:触发器时钟上升沿到来之后,数据保持不变的时间;输出相应时间Tco:触发器的输出在上升沿到来多久之后发生变化的时间,即触发器的输出延迟。...

2019-08-03 20:41:43 4279

原创 FSM

状态机的输入连接到“下一状态解码单元”同时触发器的输出也连接到“下一状态解码单元”它们一起决定了FSM下一状态的走向,一旦FSM进入到下一状态,触发器会获得一个新的“当前状态”,由“下一状态解码单元”产生;触发器用来产生内部计数序列,用来控制外部输出解码电路,触发器每一个状态对应一个输出。绘制FSM状态图时,确定有几个状态;选择触发器个数,对状态进行编码;确定每个...

2019-05-17 23:31:28 1762

原创 quartus值时序仿真出错及解决

问题:一开始时序仿真时,在.vwf文件里点击“start timing simulation"报错:check the nativelink log link file解决办法:1)processing-> start->start filter; 2) processing->start->start timequest timin...

2019-05-11 21:45:33 8647

原创 FPGA命名规则

对于Altera的FPGA芯片以EP2C35F672C6N为例做一个说明:EP:工艺;2C:cyclone II(飓风)(S代表Stratix,A代表arria);35:逻辑单元数,35表示大约有35k的逻辑单元;F:表示PCB封装类型,F是FBGA封装,E(EQFP)、Q(PQFP)、U(UBGA)、M(MBGA);Package Type:E: Plastic En...

2019-05-11 19:18:20 1521

原创 阻塞赋值和非阻塞赋值

一、阻塞赋值阻塞赋值的操作符为=;阻塞赋值的执行可以认为是只有一个步骤的操作:所谓阻塞的概念是指在同一个always块中,其后面的赋值语句从概念上(即使不设定延迟)是在前一句赋值语句结束后在开始赋值的。阻塞赋值在语句结束后立即完成赋值操作;阻塞赋值常用于组合逻辑电路的设计二、非阻塞赋值非阻塞赋值的操作符为<=;非阻塞赋值的操作可以看作为两个步骤的过程:1)在赋值时刻开始时,计...

2019-05-11 19:17:06 15656

原创 verilog语法知识

标识符标识符由字母、数字、下划线或美刀符号组成,且第一个字符只能是字符和下划线,标识符区分大小写。例子: mux和Mux是不一样关键字123个关键字,always、begin、assign、module、endmodule、and 、nan等。注释单行注释://多行注释:/* */常量之整数-格式: +/-[位宽] '[进制] [数字序列]-位宽:缺...

2019-05-11 14:52:26 2954

原创 verilog基本结构

一、verilog基本结构verilog使用模块,每个模块对应电路中的逻辑实体,模块module由下面几部分组成:模块声明; 输入/输出端口声明; 信号类型声明; 逻辑功能描述。1.1 模块声明格式: module 模块名(端口1,....,端口n);例子: module example (in1,out1 ,inout1);1.2 输入/输出端口说明格式: inp...

2019-05-11 10:30:11 5340

原创 DSP实现外扩SRAM

问题描述:DSP在物理上将程序空间和数据空间整合成4M*16位的空间,但是在其上实现FFT算法时,运算数据量太大,内部RAM不够,这时需要通过外扩SRAM的方法来实现。注意:在nonBIOS情况下,CMD文件不外乎就三个:28335_RAM_lnk.cmd(用于仿真调试)、DSP2833x_Headers_nonBIOS.cmd、F28335.cmd(用于flash烧写)。仿真...

2019-05-09 16:29:52 4865

原创 “#include""和#inlclude(尖角括号)的区别”

在ccs包含头文件,虽然很简单,但是一直没注意,不清除两者的区别,现在好好梳理以下:1)#include"a.h"引用的是程序目录下相对路径的头文件,而#include<a.h>引用的是编译器类库里面的头文件。比如我的project的工作区地址为C:\Users\yang\workspacev6.0\FFT,而编译器自带的头文件地址为C:\ti\controlSUITE\dev...

2019-05-07 13:43:51 716

原创 ccs报错:error #10234-D: unresolved symbols remain

参考地址:https://e2echina.ti.com/question_answer/microcontrollers/c2000/f/56/t/17305问题描述:在ccs6的project中添加了硬汉提供的DSP2833x_common和DSP2833x_headers中的头文件和源文件,编译报错:error #10234-D: unresolved symbols remain ,符...

2019-05-07 13:12:45 21162

原创 C++从txt文件读取文件和输出数据到txt文件

C++对txt文件操作参考:https://blog.csdn.net/hzw9806/article/details/80543691以下是做研电赛项目,其中FFT算法代码的小部分,主要在Visual Studio2019对txt文件中数据进行读操作和将FFT变换后的数据进行写操作:#include <stdio.h>#include <stdlib.h>...

2019-05-06 21:46:19 15032

原创 离散数据时域积分

问题描述:单片机采样的点都是离散的,存到一个一维数组A[]中,该数组元素是一个连续函数上离散点的纵坐标,横坐标是等间隔的(采样时间恒定),现在对离散数据进行积分,得到一个新的数组V[],数组V中元素是另外一个函数(原函数积分后的函数)上离散点的纵坐标约束:被积函数是未知的,不能用初等函数表示.解决方案:时域积分频率积分时域积分:单片机或传感器采样得到的点都是离散的,在时域中,对...

2019-05-01 00:24:20 13303

原创 CCS进行浮点运算时添加浮点运算库

问题描述:在ccs的project中进行浮点运算如:y=asin(2pi),怎么添加TI的浮点运算库fpu32.lib.具体参考例程:C:\ti\controlSUITE\device_support\f2833x\v141\DSP2833x_examples_ccsv5\fpu_hardware操作:1)将lib路径添加到link路径下:project->properties-&...

2019-04-30 13:48:57 3469

原创 DSP学习之单元寄存器

ADC单元寄存器分为如下:ADC控制寄存器1ADCTRL1;ADC控制寄存器2ADCTRL2;ADC控制寄存器3ADCTRL3;最大通道数ADCMAXCONV;ADC输入通道选择排序控制寄存器ADCCHSELSEQ1、ADCCHSELSEQ2、ADCCHSELSEQ3、ADCCHSELSEQ4;ADC自动排序状态寄存器ADCASEQSR;ADC结果寄存器ADCRESULT0~ADC...

2019-04-29 14:59:33 4237

原创 DSP学习之ADC补充说明

一、排序器的覆盖功能排序器工作在连续的自动排序模式下:AdcRegs.ADCTRL1.bit.CONT_RUN=1;排序器工作在启动/停止模式下:AdcRegs.ADCTRL1.bit.CONT_RUN=0;在连续运行模式下,ADC模块将转换结果存放到结果寄存器ADCRESULTn中,在一个转换序列完成后,排序器自动返回0,即排序器SEQ1和级联排序器指针返回CONV00,SEQ2指针返...

2019-04-29 11:51:29 4208

原创 DSP学习之排序器的启动/停止模式

排序器的连续的自动排序模式:AdcRegs.ADCTRL1.CONT_RUN=1;排序器的启动/停止模式:AdcRegs.ADCTRL1.CONT_RUN=0;排序器(SEQ1和SEQ2)启动/停止模式可在不同时间分别和多个启动触发信号同步,一旦排序器完成了第一个排序,这个排序意味这所有一轮的变换,可允许排序器不需要复位到初始状态(CONV00)下重新触发排序器。因此当一个转换序列结束时,...

2019-04-29 10:36:45 1369

原创 DSP双排序操作方式

双排序语句:AdcRegs.ADCTRL1.bit.SQE_CASC=01)当ADC工作在双排序工作方式下,2个8状态排序器SEQ1和SEQ2彼此独立,由各自的触发源触发转换。2)在一次排序过程中,SEQ1/SEQ2能对8个任意通道进行排序转换。3)每个排序器的最多转换通道个数依然受MAX_CONVn控制。4)控制寄存器ADCTRL1中的连续运行状态位CONT_RUN置1时,转换序列重新自...

2019-04-29 00:00:32 3192

原创 DSP学习之排序器操作

1.2级联排序器同步采样同步采样模式下,控制寄存器CONVxx的最高位不起作用,每个采样保持缓冲器对CONVxx的低三位确定的引脚进行采样,即,假如AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x1,则ADCINA1由采样保持器A采样,ADCINB1由采样保持器B采样,采样可以同步进行,但是转换不能同时进行,转换器首先对S/H A锁存的电压量进行转换,保存到结果寄存器ADCR...

2019-04-28 20:34:08 1204

原创 DSP学习之排序器操作

一、级联操作方式或单排序操作方式在级联排序器操作方式下,两个8状态排序器(SEQ1和SEQ2)级联成1个16状态排序器,语句为AdcRegs.ADCTRL1.bit.SEQ_CASC=1 %建立级联序列方式1.1 顺序采样:#启动ADC转换前,需要进行一下初始化工作:配置采样模式(SMODE_SEL):AdcRegs.ADCTRL3.bit.SMODE_SEL=0初始化转换的...

2019-04-28 16:24:20 1116

原创 DSP28335学习总结之ADC转换单元

一、ADC转换基本步骤A/D转换器将模拟量转换为数字量需要进行4个步骤:采样、保持、量化和编码。详细解释4步的意义:(1)采样,就是将时间上连续的模拟量转换为时间上离散的模拟量;(2)保持,就是在下次采样到来之前,将采样结果存储起来;(3)量化,就是离散的模拟量归化为与之接近的数字量,量化分为直接比较型和间接比较型,直接比较型将输入的模拟量与参考电位比较,得到数字量,又分为逐次逼近ADC...

2019-04-28 11:35:00 5617

原创 【研电赛遇见问题】

一、积分器输出饱和1、问题描述:罗氏线圈输出电压太低,正负半周电压均低于运放TL082的失调电压,导致积分器输出饱和,直接拉高到电源电压。2、实验波形:通过函数信号发生器产生一个+5/-5v的电压波形,输入到积分器。发现频率为50Hz波形如下:输入频率为1k的积分器输出波形为:输入频率为10k的积分器输出波形如下:3、分析结果:积分器公式为:Uo=Uo=Uo=−1RC-\fr...

2019-04-26 21:53:30 2263

原创 研电赛项目之罗氏线圈设计

初识罗氏线圈罗氏线圈是一个均匀缠绕在非磁性材料上的环形线圈,绕中心点旋转一圈后回到起点,连接到一条线缆上固定。图1. 罗氏线圈罗氏线圈工作原理根据法拉第感应定律和楞次定律,交变的电流产生交变的磁场,交变的磁场沿中心线穿过罗氏线圈感应出交变的电压,交变的电压与电流变化率成正比:E=H∗didtE=H*\frac{di}{dt}E=H∗dtdi​H为线圈的灵敏度。线圈一定时,罗氏线圈的输...

2019-04-22 15:54:55 4118

原创 Verilog学习日志

Verilog学习日志时间:2019/04/141、Verilog基本结构Verilog使用module来描述一个电路单元的功能,module代表一个逻辑实体。通常的语法结构:模块声明;输入/输出端口声明;内部信号说明;逻辑功能描述;1.1 模块声明包括:模块名和输入、输出端口列表格式:module example(in1,in2,out1,out2)1.2 输入/输出端口...

2019-04-14 23:26:49 341

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除