ZKX's LAB

fpga跨时钟域通信时 慢时钟如何读取快时钟发送过来的数据? fifo串并转换

2020-10-11知识22

FPGA该怎么学啊? 分如下几个层次或者阶段吧。1、verilog语言,这个比较简单,虽然语法很多,但是真正用于综合的很少很少,花一天时间入门就可以了。2、常用的设计方案,比较边沿检测电路、串并转换、计数器、fifo、ram、状态机等等最基本的方案,需要熟练掌握(自己写代码);3、仿真,上面第二步说的常用设计方案,每一个都搭建一个平台仿真下,看看自己的设计是否正确;4、器件,选择一款器件(如果手头有板子,就选择板子上的器件,没有的话就选择一个主流的),了解FPGA的架构,了解LUT、REG、FIFO、RAM等基础知识。看看第二步的设计方案综合后,在FPGA内是个什么样子?用了什么资源?5、如果有板子,那就是上板测试。比如自己写一个点灯的微项目。通过上述5个步骤,完成一个微项目后,会增加自己的信心和兴趣,后面的过程就是2-5反复的过程。因为任何一个复杂的设计,最终实现都是第二步中提到的常用设计方案。

fpga跨时钟域通信时 慢时钟如何读取快时钟发送过来的数据? fifo串并转换

FIFO的实现

fpga跨时钟域通信时 慢时钟如何读取快时钟发送过来的数据? fifo串并转换

FPGA该怎么学啊? 根据提问者的描述,已经做了3年的硬件设计,想拓展提升自己,寻找出路。对FPGA比较感兴趣,但是公司没有这样的平台,该如何自学呢?有3年的硬件设计经验,有一定的硬件基础,学习FPGA相对来说还是比较容易的,下面谈谈本人的观点。随着科技发展,对硬件的处理能力要求越来越高,FPGA在在众多处理器当中有绝对的优势,FPGA是非常好的一个并行处理平台,只要逻辑资源允许,可以构建n个处理模块,n个软核。FPGA是一个高度集成芯片,很多模块集成到FPGA芯片上,比如DSP处理单元、片内RAM、高速收发器、微处理器、以太网等。提升自己,学习FPAG还是非常有前途的。硬件描述语言学习FPGA,要先学它的编程语言—硬件描述语言,有VHDL和Verilog,个人建议学习Verilog,Verilog语言和C语言比较相似,对于有C语言基础的人来说比较容易入门,而且目前市场上使用Verilog语言的人较多。编程语言就不多说了,自己购买教材,或者网上下载电子书、视频教程学习。开发工具比如Altera公司的的开发工具:quartus,Xilinx公司的开发工具:Vivado、ISE等,FPGA主流的两大公司就是Altera和Xilinx,占据了市场90%左右的份额,熟悉掌握使用这两家公司的开发工具以及相关芯片即可。下图为quartus开发工具。

fpga跨时钟域通信时 慢时钟如何读取快时钟发送过来的数据? fifo串并转换

USB芯片到底完成了哪些工作?

哪位大神告诉一个,很简单的Verilog串并转换,UART接收器 首先若这个数据是按照clk的时钟一位位串行进入,那么你就可以在clk的上升沿触发,将每次进的一位数据存入一个长10bit的寄存器(假设是data_buff),而且这个寄存器没个始终上升沿左移一位,这样每次进的数据都存在data_buff[0],而且每次都记一次数,当计数十次后就是串行数据都进来后,读取data_buff[8:1]就行了,并行出去看你要咋出了,是像数码管那种还是啥?

fpga跨时钟域通信时 慢时钟如何读取快时钟发送过来的数据? 就一条线中间是无法加fifo的,这种只能数据单向传输,而且是慢的给快的;快的给慢的一根线是无法完成的;你为什么不用两条线呢?像IIC一样的传数据

FPGA怎么向FLASH里边写数据啊? 首先你先要折算一下两边的速率。串口的实际速率(有效数据,也就是你所需要的数据)例如波特率9600,一位起始位,一位停止位,8位数据,无校验的情况下,那么你的传输速率是960B/s(注意:字节不是位了)那么你要知道FLASH中的传输的速率是多少。去掉指令。实际有效传输速率是多少。datasheet里面肯定有。如果说串口数据有效速率>;flash的读写有效速率。那么这个设计本身就是错误的。(哈哈。基本不可能啦。而且串口速率可设。串口数据有效速率的有效速率。那么可以用一个FIFO缓存一下。发完指令以后读取数据。不过这个是要注意格式的。其中牵扯到的时序概念这里就不详述了。简单流程,串口输入数据,串并转换后控制FIFO的写部分。利用FIFO的空信号指示FLASH读写模块的工作。然后么当发完指令以后FLASH从FIFO里面读取数据。这样就搞定了~

#reset#时钟信号#通信#芯片#fpga

随机阅读

qrcode
访问手机版