自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (12)
  • 收藏
  • 关注

原创 MATLAB 将多张figure生成gif,title随循环自动改变

实现功能MATLAB将循环生成的多张图片整合为一个gif文件,并且title可以随着循环自动改变实现代码 del = 0.5; % time between animation frames for i = 1 : 10 Fig = figure(1); filename = 'saved_gif.gif'; x(i) = i; y = x + 1; plot(x,

2021-04-08 17:18:28 2535

原创 Matlab有符号十进制小数转换为有符号十六进制数

实现内容:1) 通过Matlab将生成的随机小数扩大为20位有符号位2) 将拓展后的数据变为补码格式: 负数变为补码,正数保持不变3)将补码格式的十进制小数转换为有符号十六进制数4)将生成的十六进制数写入.coe文件中代码实现% generate the random numberfor i = 1: 10 M(i,1)= (-1)^i *rand(1);end N = length(M);Radix = 16;Coeff_width = 20;% co

2021-03-04 06:17:07 4783 3

原创 红外遥控解码设计与验证VHDL

实验器材Quartus ii 18.0小梅哥AC620开发板红外遥控器实验背景红外线遥控器利用波长为0.76μm ~ 1.5 μm 的近红外线来传送信号。红外线的特点是不干扰其他电器设备工作,也不会影响周边环境。比如不同的电视遥控器只能控制对应的电视,这是因为不同的电视遥控器对应一个不同的地址。不同的家用电器有不同的编码方式,统称为红外遥控器编码传输协议,使用最多的为NEC协议。实验原理红外发射部分电路包括矩阵键盘,红外发光二极管,编码以及调制电路,这些都已经集成在红外遥控器上(遥控器示意图如

2020-12-22 23:35:58 2369 4

原创 数据采集传输系统VHDL

实验内容按键控制,按下ADC采集数据100次,并存储到FIFO中从FIFO中读取数据,并通过UART发送数据到PC实验工具Quartus ii 18.0AC620 FPGA原理图如上图所示,红线的地方是输入输出端口start模块:控制ADC开始采样100次ADC_driver模块:驱动ADC128S052模块进行模数转换FIFO模块: 存储/读取ADC的100个数据FSM模块:控制FIFO的读取以及Uart_tx模块的数据发送Uart_tx模块:通过串口调试助手,发送数据到PC

2020-12-11 01:11:19 935 1

原创 ADC_DAC综合仿真验证

实验器材ADC128S052DAC TLV5618Quartus ii 18.0AC620硬件开发板实验要求通过ISSP向DAC输入16位数据,控制DAC输出的通道以及工作模式,通过ISSP控制ADC的输入通道选择,并观察ADC的12位输出数据是否和DAC的输入的电压大小在误差范围内,并将ADC的输出数据按十进制显示到数码管中。代码实现DAC/ADC,数码管的代码实现DAC/ADC的代码实现以及原理在之前的文章已经讲了,这里就不再赘述。ADC原理及代码DAC原理及代码数码管的原理及代

2020-11-11 18:07:31 1245

原创 线性序列机与串行接口ADC驱动设计与验证 VHDL

(已通过板级验证)实验工具AC620实验开发板Quartus ii 18.0VHDL实验原理下图为ADC器件的管脚:IN0-IN7为八个输入的通道,可以选择任意通道作为输入,本次实验每次只选择一个通道。SCLK为时钟输入,范围从3.2MHZ~8MHZ(AC620参考时钟为50MHZ,因此采用八分频时钟,SCLK=6.25MHZ)。DIN为输入信号,输入控制通道地址信号,SCLK的上升沿采样输入DOUT为输出信号,在SCLK的下降沿输出,每次输出一位数据,一次转换从高到低总共输出12位数字

2020-11-11 15:53:58 809

原创 线性序列机与串行接口DAC驱动设计

实验要求通过TLV5618DAC芯片和线性序列机(LSM)实现DAC驱动,并通过ISSP工具输入希望输出的电压值,控制FPGA进而操作TLV5618芯片输出对应的电压值。start: 脉冲信号,标志着DAC转换的开始。DAC_DATA[15:0]: 输入的数字信号SCLK: TLV5618的SCLK信号DIN: TLV5618的DIN信号CS_N: TLV5619的CS_N信号DAC_state: DAC的状态。0:工作;1:空闲conv_done:标志着一次DAC转换完成实验原理TL

2020-11-11 11:13:05 735

原创 Quartus ii FIFO ip核的应用与仿真

原理FIFO: first in first outFIFO分为 signal#mermaid-svg-HnZIJHpAv2r1AJF7 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-HnZIJHpAv2r1AJF7 .label text{fill:#333}#mermaid-svg-HnZIJHpAv

2020-09-01 23:43:19 2346 1

原创 Quartus ii 中ROM ip核的应用

ROM: read only memory: 掉电不丢失数据RAM可以被配置为ROM实验内容:将一组固定数据(三角波)存储在FPGA中使用IP核构建的片上ROM中,开发板上电后,系统开始从ROM中读取数据,通过并口输出。用signalTap II 实时抓取并口上的数据,显示三角波形。用In system memory content editor工具在线更改ROM中的数据(改为正弦波),用signalTap再次观察。Quartus ii 实现生成三角波.mif文件: triangula

2020-08-30 10:35:37 6999

原创 UART+双口RAM的使用

实验器材AC620开发板、 串口猎人、 Quartus ii实验内容:通过PC机串口助手发送数据,FPGA中 UART_RX接收模块接收数据,并将其存储到双口RAM中,然后读取双口RAM中存储的数据,通过UART_TX连续发送数据到PC机中显示。通过按键控制是否发送数据,按键一次,开始发送数据,再按一次停止发送数据。实验原理dual port RAM通过Quartus ii 中的 Tools --> IP Catalog 找到RAM 2 port, 然后配置为一个256 字节的存储器(其

2020-08-29 13:35:42 1356

原创 UART 接收模块

(已通过板级验证)实验要求:在Quartus ii 中利用In system sources and probes(ISSP) 查看UART接收模块接收到的数据,串口接收到的数据由PC机发出。baud_set[2:0]: 波特率选择信号rs232_rx:串行数据输入data_byte[7:0] : 并行数据输出rx_done: 脉冲信号,接收结束信号实验原理:一般在实验室环境下,信号比较稳定,不存在强电磁干扰。 但是在工业环境下,信号会有一定的错误,因此我们采用过采样的办法避免干扰。 对每

2020-08-24 16:07:52 1145 1

原创 modelsim仿真问题

仿真出现以下问题Error (suppressible): (vsim-SDF-3250) dpram_8_1200mv_85c_vhd_slow.sdo(0): Failed to find INSTANCE ‘/NA’.Error (suppressible): (vsim-SDF-3894) : Errors occured in reading and resolving instances from compiled SDF file(s).Error (suppressible): (vs

2020-08-24 13:15:14 2445

原创 数码管的动态扫描实现

实现FPGA驱动数码管动态显示,板级调试时通过in system sources and probes(ISSP)输入想要显示的数据。八段数码管的驱动原理:八段数码管的结构如下图所示,七段数码管就是少了h那个点。数码管分别共阳极和共阴极结构:共阴极就是一个数码管中的8段LED阴极全部接在一起,如上图左侧所示,共阳极则是将LED的阳极接到一起。本实验所用的开发板为AC620,采用共阳极结构。如果要让LED灯亮,那么对应的LED灯的阴极要接低电平。也就是说如果要显示数字‘0’,输入的数据应该为:“11

2020-08-12 18:02:27 7788

原创 BCD计数器

为了方便输出数据到硬件开发板中,设计了BCD码计数器实验原理如: 输出数据158到数码管的时候需要:158 / 100 = 1 百位158 % 100 =58 58 /10 =5 十位158/10 = 8 个位除法和取余的运算消耗的资源都比较大,为了节约资源,可用BCD计数器(每十个数进1),如下图所示,每四位分别表示百位,十位,个位。代码实现4位BCD码计数器的实现// 端口名称 clk : in std_logic;

2020-08-07 22:23:55 3019

原创 can't launch the modelsim-Altera software

当安装好Quartus ii软件之后进行仿真出现以下错误:需要在Quartus ii中设置Modelsim的仿真路径:选择** Tools --> Options**打开界面如下,选择General --> EDA Tool Options --> Modelsim-Altera (我是在安装Quartus ii的时候一起下载的Modelsim, 为Altera自带版本)然...

2020-05-08 14:17:31 2989 4

原创 Quartus II tcl文本分配管脚

在Quartus ii软件中点击:File --> New --> Design Files --> Tcl Script File 新建一个TCL文件然后编写代码如下图所示:set_instance_assignment是设置管脚的类型,我用的是3.3V的TTL电平set_location_assignment是将相应的管脚分配给端口写好TCL文件之后,点击 Too...

2020-05-08 10:28:37 857

原创 quartus ii 18.0 standard 加入新的器件库

下载的器件库一定要和安装的Quartus ii版本一致。器件库下载地址: https://fpgasoftware.intel.com/?edition=standard首先以管理员的身份运行Quartus ii 18.0然后选择 Tools --> Install Devices接着出现以下界面,选择 Next然后选择器件库的位置(我是放在Quartus ii 的安装文件里面...

2020-05-07 22:33:32 5612 3

原创 matlab plot,eyediagram,constellation diagram(multi-input) and phase offset

plotplot(timeunits,Qin2) % input x and y valuexlim([0 2049]) % setting the x axis rangexlabel('Qin2') % name the x axisylabel('time') % name the y axis生成图片如下:eyediagram:eyeo...

2020-05-03 16:12:19 2018

原创 matlab将txt文件中的有符号二进制数转换为十进制数

实现原理本文实现的是将十二位的有符号的二进制数转换为十进制数:由于在数字在显示中,如果高位为0会在显示中被省去,所以,这里无法检测到每个数的位数都为12位,也就是无法全部检测到12位的符号位。比如: 000011110000, 在显示的时候只会显示: 11110000如果此时检测最高位是否为1, 就只会检测到第8位为1,检测为负数。所以由于是将12位有符号位的二进制数转换,也就是说,它的...

2020-05-03 15:47:41 5935

原创 FPGA亚稳态状态检测边沿

亚稳态的原理如上图所示,当时钟上升沿来的时候,数据恰好改变,这个时候输出的结果就无法确定是0/1,寄存器会经过一段时间的抖动然后输出一个结果(无法确定是正确还是错误)亚稳态检测边沿的解决办法通过三个寄存器,数据的抖动会消失,从而得到稳定的数据输出(数据同样不确定是否正确)亚稳态检测边沿的原理:当寄存器抖动之后输出为0时,如下图所示,通过两个寄存器,就可以消除抖动,并且,在几个时间周期之...

2020-04-06 21:16:55 397

原创 按键消抖原理及VHDL代码实现

按键消抖原理及VHDL代码实现按键抖动原理如上图所示,当我们按下FPGA上的button键之后,我们理想的状态如黑线所示,但是实际的情况是如红线所示,会有几次的来回抖动,然后才会变得稳定。这个问题就会导致FPGA检测到数次1,这样可能就会运行数次操作,从而得到错误的结果。按键消抖原理因为按下FPGA的按键时,弹簧片最低震动频率不会低于50 HZ,所以,两次下降沿出现的时间差不会超过20...

2020-04-05 16:49:33 9221 1

原创 UART 发送模块VHDL实现

UART 原理 以及VHDL实现Uart: 异步串口通信Uart 管脚Uart 关键参数以及时序图实现的逻辑功能:VHDL 代码实现Baud_set的实现sclk的实现数据传输的实现:仿真结果:start 仿真结果:cnt再次计数到1![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403175440950.jpg?x-oss-process=image/...

2020-04-04 15:54:37 3029 1

原创 vivado 与 modelsim联合仿真

找到modelsim的安装途径,一般是在C盘里面,我的电脑里面的名字:Modeltech_pe_edu_10.4a(学生版),在里面新建一个文件夹:vivado2019_lib(含有win32的那个文件夹) 不同版本的Modelsim名字会有一些不同新建一个工程之后在tools里面选择compile simulation libraries编译完成之后再打开vivado2019_lib就会...

2020-02-28 04:32:21 1207

原创 HDL class 2(利用case语句,并调用子模块)

完成下图所示图形:逻辑功能描述control 模块接收到tx_done信号之后给send模块发出en使能信号和8位data。send 模块当en使能为高的时候,开始将输入的数据一位一位的传输给tx(output), 当八位数据输出完成之后tx_done=1;tx_done之后延时50 ms写一个top level来调用control 和send 模块注意如果control不...

2020-02-19 05:13:59 538

原创 HDL task/initial可综合/不可综合

Task的可综合与不可综合:下面的代码是不可进行综合的:beginuart_tx_module(8'h12);uart_tx_module(8'h78);endtask uart_tx_module; input [7:0] data; begin uart_tx = 1; #1000 uart_tx = 0; #1000 uart_tx = data[0]...

2020-02-18 19:08:37 1296

原创 HDL 学习1

HDL学习1Modelsim 的使用技巧用光标进行测量数据:如何改变仿真中的时间坐标轴画时序图比较好的软件推荐 Altium DesignerHDL知识点Modelsim 的使用技巧用光标进行测量数据: 1.左下角有一个????的标志,可以锁定光标 2.左下角有一个绿色的加号,用来加光标如何改变仿真中的时间坐标轴 在仿真界面的下方,也就是在时间的位置上右键单击 选中Grid &am...

2020-02-11 06:42:18 230

红外遥控H6221解码设计与验证VHDL(已通过板级验证)

通过小梅哥AC620实验开发板和H6221红外装置解码接收到的红外波形。本资源包含实验所需的源代码,仿真以及顶层验证模块

2020-12-24

ADC数据采集传输模块VHDL(已通过板级验证)

本资源通过按键控制ADC128S52模块采集数据100次,并存储到FIFO中。通过uart_tx模块将FIFO中的数据传输到PC中。本资源包含ADC驱动模块,按键消抖模块,Uart发送模块,综合模块,仿真模块。

2020-12-11

线性序列机与串行接口ADC驱动与验证VHDL

本资源实现了对ADC128S052芯片的驱动,并将其显示在七段显示器中,已通过板级验证。包含了实验所需的所有源代码以及仿真文件。

2020-11-11

线性序列机与串行接口DAC驱动设计

通过TLV5618DAC芯片以及线性序列机实现对DAC的驱动,采用小梅哥AC620实验开发板。本资源包含所有的源文件,仿真文件。

2020-11-11

Quartus ii ROM ip核的应用

构建片上ROM,存储数据,通过signalTap II观察读出的数据,通过In System Memory Content Editor 更改ROM中存储的数据

2020-08-30

UART_DPRAM vhdl (已通过板级验证)

实现通过uart_rx接收PC机发送的数据并将其存储到双口RAM中,然后通过uart_tx发送从双口RAM中读取的数据,显示在PC机中。

2020-08-29

uart 串口接收模块 vhdl(已通过板级验证)

uart 串口接收模块, 通过串口助手调试验证,包含本实验所需的vhdl代码以及仿真文件,所用实验开发板:AC620

2020-08-29

uart 发送模块vhdl(已通过板级验证)

UART串口发送模块,通过串口助手调试验证,包含实验所需的vhdl代码以及仿真文件,实验开发板AC620

2020-08-29

按键消抖vhdl(已通过板级验证)

本资源含有按键消抖的所有代码以及仿真文件,已通过板级验证。实验内容: key0,+1; key1, -1; 最终结果显示在4个led中。

2020-08-20

数码管动态扫描VHDL实现

通过in system source and probe输入32位数据让8个数码管显示数据,为了节约资源,在顶层加入了HC595driver来驱动8个数码管。

2020-08-10

06BCD_counter.rar

通过顶层调用子模块4位BCD计数器来实现12位BCD计数器,内容包含源代码以及testbench文件

2020-08-06

VHDL code.rar

VHDL代码,利用case语句循环发送序列数据,调用子模块 https://editor.csdn.net/md/?articleId=104386419 中详细讲述了本压缩文件代码所实现的功能 包括top_level, send, control模块的源代码, testbench, do文件

2020-02-21

空空如也

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

TA关注的人

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