基于FPGA/数字IC的数字信号处理课程 基于FPGA/数字IC的数字信号处理课程参考文献课程简述课程目录已更新学习收获总结参考文献[1]. Sayed A H. Adaptive filters[M]. John Wiley & Sons, 2011.[2]. 西蒙赫金. 自适应滤波器原理[M]. 电子工业出版社, 2016.[3]. V3学院——尤老师课程简述博主已经很久没有更新博客,是不是突然感觉诈尸了,主要是因为前段时间一直在做毕业论文。最近,毕业答辩顺利结束,工作的报道日期还有一段时间,就想着接下来继续做一些知识分享。
基于MATLAB的FM调制解调(1) 基于MATLAB的FM调制解调参考文献项目简述FM调制数学模型参考文献[1]、V3学院——尤老师[2]、网易云课堂项目简述好久没写博客了,因为这段时间太忙,熟悉博客的同学都应该知道,我的博客每一篇都干货慢慢,从来不水博客。因为自己就是信号处理专业的学生所以对信号与通信的知识比较了解。最近学习了尤老师的FM调制,感觉对调制的原理有了更进一步的理解,这里想把自己的一些理解放出来做个记录以及载波恢复的扩展,想系统学习软件无线电的同学可以联系尤老师。 这个系列我将分为两个章节来完成,一个是载波已知的情况下
VIM常用操作 VIM常用操作博客概述VIM工作模式VIM常用的命令VIM由命令模式变成插入模式的几种方式定位命令删除命令复制和剪切命令替换和取消命令查找和替换命令保存命令博客概述在Linux中最常使用的编辑器就是VIM,但是VIM的使用与Linux的使用基本一致,都是基于命令行操作,因为VIM也是只有命令没有菜单。那么,要想使用好VIM就必须记住一些常用的命令,方便我们使用VIM到达随心所欲的地步。这篇文章讲总结我们经常使用的VIM操作方式,供同学们学习以及方便博主日后复习。VIM工作模式VIM有三种工作模式,分
Linux常用命令 Linux常用命令博客概述Linux命令ls命令mkdir命令rmdir命令cd命令pwd命令cp命令mv命令ctrl+l命令rm命令touch命令cat命令tac命令more命令less命令head命令tail命令博客概述在FPGA开发的过程中,服务器的使用还不算过于频繁,因为使用个人电脑一般也都能完成任务,但是在IC设计中我们一般都使用服务器,服务器上面使用的系统是Linux系统。众所周知,Linux系统是标准的命令行操作的系统,就是我们看起来逼格非常高的那种操作方式。所以,我们需要记住Linux系
数字IC设计/FPGA工程师秋招面经 秋招面经秋招总结迷茫期低谷期兴奋期秋招面试常问问题投递公司总结秋招总结已经一个多月没更新博客了,并不是因为博主的只是储备量空了,而是因为我去准备秋招去了,接下来将会恢复博客的更新,速度不会太快,因为还有自己的别业论文需要准备。到现在秋招已经步入了尾声,这篇文章将记录与总结一下自己两个多月的秋招生涯,给后来者一些微小的经验。回顾秋招,自己也经历了迷茫期、低谷期、兴奋期。最终也收到了几家的offer,主要有:恩智浦、创发信息科技、芯动、展锐、物奇等。迷茫期最后开始投递的时候并没有考虑投递数字IC设计的岗
VIVADO除法IP注意事项 VIVADO除法IP注意事项参考文献项目简述注意事项第一个注意事项第二个注意事项第三个注意事项第四个注意事项总结参考文献[1]、V3学院——软件无线电课程项目简述这篇博客主要记录VIVADO中除法IP的注意事项,遇见一些新的知识点应该做相应的笔记。本次实验所用的软硬件环境如下:[1]、VIVADO 2019.2[2]、Modelsim 10.7注意事项第一个注意事项首先可以在除法IP的定制界面看到被除数、除数、商的位宽有详细的说明:从上面的位宽信息,我们可以发现被除数有18位整数,除
真正理解阻塞逻辑赋值与非阻塞逻辑赋值 真正理解阻塞逻辑赋值与非阻塞逻辑赋值参考文献项目简述举例说明正确代码可综合代码测试代码仿真结果错误代码可综合代码仿真结果总结参考文献[1]、数字芯片实验室(微信公众号)项目简述因为最近参加Xilinx暑假计划比较忙,已经很久没写文章了,这篇博客我们将重点讲述Verilog中阻塞逻辑赋值‘=’、非阻塞逻辑赋值‘<=’。看到这里不免大家要嘲笑,这谁不知道,文章的内容咋么越写越倒退了。其实不是这样,绝大多数的同学理解阻塞赋值与非阻塞赋值是组合逻辑语句用阻塞赋值 ‘=’、时序逻辑用非阻塞逻辑赋值‘&l
VIVADO HLS函数层面的优化 VIVADO HLS函数层面的优化参考文献项目简述数据类型对函数实现inline操作函数的Allocation操作函数的dataflow操作总结参考文献[1]、lauren的FPGA(微信公众号)项目简述这篇文章简单从函数层面描述HLS约束的方法有哪些,进一步的掌握HLS的约束方法。数据类型要尽量使用任意精度数据类型。例子如下:对函数实现inline操作inline:将简单的函数进行合并。例子如下:阻止inline的方法如下:可以看出把inline关掉的话,相应的资源与吞吐率得到
VIVADO HLS数组的优化 VIVADO HLS数组的优化项目简述数组的分割对数组采用Partition展开操作对一维数组采用Partition展开操作对多维数组采用Partition展开操作数组的映射和重组数组的MAP数组的ARRAY_RESHAPE总结项目简述前面一篇文章,我们已经进行了讲解软件程序中最重要的两个指标是时间复杂度、空间复杂度。上面循环语句的优化主要体现在时间复杂度的优化,那么这篇文章我们将着重于空间复杂度的优化。时间复杂度体现在循环语句上面,而空间复杂度则体现在数组上面,所以这篇文章我们将讲解VIVADO HL
VIVADO HLS循环语句的优化 VIVADO HLS循环语句的优化参考文献项目描述for循环的衡量指标对for循环设置Pipeline操作对for循环设置Unrolling操作for循环的合并对于两个完全并列的for循环约束方法——合并for循环对于并列for循环的循环边界为不同常数的循环合并对于并列for循环的循环边界一个为常数一个为变量的合并对于并列for循环的循环边界两个均为变量的合并for循环的优化——dataflowfor循环的结果被另外多个for循环使用,为了使用dataflow解决办法另一个不能使用dataflow的例子及解
VIVADO HLS的接口描述 VIVADO HLS的接口描述参考文献项目描述基本介绍顶层函数握手信号ap_ctrl设置Port-leve I/O参考文献[1]、lauren的FPGA(微信公众号)项目描述我们在进行HLS编译的时候会设置顶层文件,顶层文件中包括形参、返回值等等。这些映射到硬件电路中会产生信号,这些信号具体又遵循什么样的接口描述我们需要设置,这不仅可以帮助我们设置更优的约束条件使得编译出来的硬件电路更加完美,更重要的是可以让我们精确了解端口所遵循的时序,只有这样我们才可以控制输入输出数据流,进而完成一定的功能。另一
Vivado HLS中的数据类型 Vivado HLS中的数据类型参考文献项目简述为什么在VIVADO HLS中使用任意精度数据类型VIVADO HLS中如何使用任意精度数据类型VIVADO HLS中数据类型的转换VIVADO HLS中的复合数据类型参考文献[1]、lauren的FPGA(微信公众号)[2]、小鱼FPGA(微信公众号)项目简述我们知道C、C++中数据类型的大小都是以字节为单位,这在FPGA中式相当浪费资源,因为只能式8bit的整数倍。所以在VIVADO HLS中我们需要具体指定每个数据类型的位宽,比如5位、10位。
高层次综合(HLS)常用时间术语的解释 高层次综合(HLS)常用时间术语的解释参考文献项目简述HLS工作原理高层次综合(HLS)指标总结参考文献[1]、小鱼FPGA(微信公众号)[2]、lauren的FPGA(微信公众号)项目简述前面一篇关于HLS的文章,我们已经进行了讲解,我们学习HLS并不是为了学习C、C++代码如何编写。我们是为了学习如何使用HLS进行加速,将高层次代码编译成底层逻辑。那么编译的好坏必然会引入一些指标,接下来我们将对这些指标进行进一步的说明,以便大家可以理解HLS设计。HLS工作原理进行HLS约束的主要原理如下
异步FIFO的设计 异步FIFO的设计参考文献项目简述异步FIFO设计难点空满信号的产生1读写地址跨时钟域问题空满信号的产生1多位二进制码如何转化为格雷码异步FIFO系统框图异步FIFO代码:测试文件实验结果总结参考文献[1]、小鱼FPGA(微信公众号)[2]、aslmer(博客园)项目简述之前写过一篇异步FIFO的注意点,详情见博客。但是不免有许多同学要问为什么官方的IP都会出现这种问题,难道是官方的IP设计的不好?这种可能性肯定不大,因为官方的IP肯定设计的比较完美。那么肯定是这种现象在异步FIFO的设计中是不可
学习XILINX HLS工具的官方资料 学习XILINX HLS工具的官方资料参考文献项目简述官方学习资料Xilinx官方教程总结参考文献[1]、小鱼FPGA(微信公众号)项目简述HLS工具是Xilinx官方发布的一个高层次综合工具,可以把用C、C++、System C编写的程序装换成HDL代码。并且给出一些策略,这些策略可以使得编译出来的HDL代码在面积与速度之间取得平衡,从而达到设计者的设计要求。现在市面上面关于HLS的资料比较少,已知的有米联客的教程,但是上面的教程并没有着重讲解HLS本身,反而讲了一些算法,至于为什么对C++代码进
基于FPGA的PCIE设计(3) PCIE协议基础参考文献项目简述PCIE概述参考文献[1]、移知网项目简述前面已经有两篇博客介绍了PCIE,相信大家应该都看不懂,前面的博客主要讲解了PCIE在FPGA中的实现,那么我们就接着学习这个协议。在接下来的几篇博客,我将尽可能的讲解一些我学会的PCIE的知识,但是要想真正学会还是得看Base Specification。这里再次说明,如果只是为了使用PCIE那么完全没有必要对PCIE的协议了解太深,因为在FPGA里面有相应的IP。这里说明一下XDMA的缺点,因为XDMA使用起来非常方便,但