jjzjj

fpga开发

全部标签

MIPS指令集单周期CPU兼Verilog学习

1.单周期CPU原理(单个时钟周期内的操作):    (1)取指,PC+4    (2)译码    (3)取操作数,ALU运算    (4)访存(MEM)    (5)写回(RegWr)    将每一级操作抽象为CPU中的若干个模块:        (1)指令读取模块(

FPGA控制ADS1256的ADC采集(一)

最近在做一个项目,需要使用到高精度的ADC采集,由于项目对采集速率并没有太高的要求,所以就将成本尽可能地花在采样精度上,最后选择了TI的ADS1256这款比较热门的24位高精度AD芯片,调完后来写篇文章记录一下。手册分析老规矩,在介绍如何用FPGA控制其进行AD转换之前先来聊聊它的数据手册。(1)框图以及引脚介绍如上所示为ADS1256的整体框图,从左到右为整片的测量顺序,模拟输入经过选择器后到Buffer,然后是PGA,再是模

Vivado+Vitis工程创建

SLW好久没用vivado了,最近有事重新回来看了看,对于新版本已经不知道怎么用了,于是就摸索了一下,写一篇帖子,以作记录。一、2018与之后的版本的不同2018之后的版本将硬件和软件部分进行了分离,我感觉不是很舒服,可能对厂家比较有利吧。之前是需要将比特流导进去就行,好久没用了,具体忘了。2019及以后的版本,前面的流程都是差不多的,一直到生成比特流。之后需要根据硬件生成一个xsa文件,这个文件的作用就是在vitis里生成pl

FPGA设计编程(一) 组合逻辑

目录【实验要求】 【实验软件工具】【实验一】设计一个16位二进制全加器模块1.实验内容与原理说明2.实验模块程序代码和激励代码3.仿真波形图4.门级电路图【实验二】用层次化设计方法,设计一个16位二进制全加器模块1.实验内容与原理说明2.实验模块程序代码和激励代码(1)设计模块代码(2)激励模块代码3.仿真波形图4.门级电路图【实验三】设计一个16位二进制超前进位全加器模块1.实验内容与原理说明2.实验模块程序代码和激励代码(1)设计模块代码(2)激励模块代码3.波形图4.门级电路图【实验四】设计一个16-bit8421-BCD码全加器模块1.实验内容与原理说明2.实验模块程序代

SR锁存器与D锁存器设计与建模

⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合VerilogHDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。🔥文章和代码已归档至【Github仓库:hardware-tutorial】,需要的朋友们自取。或者公众号【AIShareLab】回复FPGA也可获取。锁存器和触发器的基本特性锁存器和触发器是构成时序逻辑电路的基本逻辑单元,它们具有存储数据的功能。每个锁存器或触发器都能存储1位二值信息,所以

Quartus与Modelsim联合仿真ROM IP时输出波形一直为零的问题以及ROM配置仿真教程

本人近期在使用QuartusPrime与ModelSim联合对ROMIP进行仿真时,遇到了一个问题,仿真输出波形一直为零。如下图,其中neur_W即为ROM的输出。在反复确认本人代码没有问题后,经过反复尝试发现是ROMIP的初始化文件——.mif文件在仿真时加载出现问题。本人上网查阅资料后发现了问题原因并解决了问题。主要原因为.mif文件没有放在该项目的prj文件夹下,即.mif文件应与.qpf文件同属一个文件夹下,而不能放在子目录下。在修改了.mif文件的保存位置之后,再次仿真,仿

信号线上串接电阻的作用

在设计电路的时候,常常会在两个芯片的信号线上串联一个电阻,这个电阻常常是0欧,22欧,33欧或更大阻值的电阻。位置的话有放在信号发射端也有放在接收端的。今天就来和大家分享下,信号线上串接电阻的作用。1、阻抗匹配,吸收反射信号当信号频率比较高,上升沿比较陡时我们就需要考虑信号的阻抗连续问题了。首先来看下光从空气照射到玻璃时,除了折射还会发生发射。当信号频率比较高,上升沿比较陡时,电子信号经过阻抗不同的地方时也会产设反射。PCB的单线阻抗一般会设计成50Ω&#

基于脉动阵列的矩阵乘法加速(FPGA)

基于脉动阵列的矩阵乘法加速(FPGA)​原本准备做FADDEV求逆矩阵算法的FPGA实现,其中有一个概念挺吸引人,就是:脉动阵列。1、脉动阵列​先来讲讲脉动阵列的概念,脉动阵列其实是一种处理单元的结构。数据同步流过,能够减小降低重复访问,调高处理效率和资源消耗。​其实这是个比较旧的概念了,1982就有学者提出了。18年谷歌提出的TPU(TensorProcessingUnit)让这个概念回到大众视野,通过脉动阵列可以设计完成矩阵

关于 【vivado ila debug时 高级触发的使用】之 改变ILA采样频率

【vivadoila高级触发的使用】之改变ILA采样频率【vivadoila高级触发的使用】之改变ILA采样频率一.背景二.改变ILA采样频率的解决方法1.利用PLL模块或者自分频产生较低的频率,去作为ILAIP中的采样时钟。2.采用ILA高级设置和VIO实现ILA采样率的自定义设置三.采用ILA高级设置和VIO实现ILA采样率的步骤四.总结一.背景通常情况下,FPGA工程师在设计完复杂的逻辑设计后,会进行初步的仿真测试,仿真测试之后进行上板测试,但是简单的仿真往往无以应对复杂的实际情况,上板使用在线调试工具&

跟着我从零开始入门FPGA(一周入门系列)第三天

3、时序逻辑设计所谓时序逻辑,简而言之,就是CLK驱动,不来时钟不干活,同时能自我保持。最简单的例子,跑马灯modelled_led(inputrst,inputclk,outputout0,outputout1,outputout2,outputout3);regary[3:0];assignout0=ary[0];assignout1=ary[1];assignout2=ary[2];assignout3=ary[3];always@(clk)begin  if(rst)