0%

前言

在之前的我学习过OFDM的verilog实现,在接收端,在时域当中的各个操作已经完成,目前来看好像烂尾了,但是在这之后,我会继续完成前面没有完成的部分。
在之前,因为没有一个完整的算法仿真模型在,所以我之前在使用FPGA实现OFDM收发器的时候,也不是很清楚其中的具体的每一个步骤。因此在这里我首先需要一个完整的算法模型,来帮助我理解其中的意义。
最近在GitHub上也找到了一些比较好的参考

  • matlab ofdm 802.11a
  • openofdm
    在这里我会尝试使用python来完整这个仿真模型的构建,值得注意的是,这里实现的并不完全和802.11a的协议规范当中的完全一致。
Read more »

前言

之前简单的学习了一下python,并且看起来使用python能够做很多事情,比如设计滤波器,进行无线系统的仿真,甚至可以用来进行IC仿真。
看起来python还是很强大的,学习一下如何使用python来设计滤波器。

Read more »

前言

在之前我们已经介绍了使用cocotb来仿真xilinx IP的一个简单流程,在那里面并没有介绍太多关于cocotb的注意事项。在这篇博客当中,我会记录学习cocotb的一些基本知识。

Read more »

前言

模块和顶层测试的验证通常比创建 HDL 更复杂、更耗时。cocotb(基于协程的协同仿真测试平台)是基于 Python 协程的,可以验证 SystemVerilog 和 VHDL,允许开发人员在 Python 中创建测试台,当然,还引入了所有更广泛的 Python 库和框架,除了处理 UUT 的输出之外,它们还可用于创建激励。
在最高层,cocotb 提供了我们选择的仿真工具和 Python 之间的接口。
为了实现这一点,cocotb 使用协程和联合仿真。 协程是 Python 函数,可以自动暂停运行,使多个函数同时运行。 协同仿真意味着设计和测试平台是独立仿真的,这意味着当 Python 运行时,仿真时间不提前。 这是使用模拟器的 Verilog 程序接口 (VPI) 和 VHDL 程序接口 (VHPI) 实现的。
cocotb 的一个重要特色是广泛的社区开发附加功能,这些附加功能提供了一系列总线功能模型,可用于验证具有 AXI 或 Wishbone 接口的模块等。

Read more »

前言

最近帮一个客户实现将一部分算法卸载到FPGA上,其中的一个部分是相关算法。相关简单来说就是一个乘累加的过程。如果在设计的的时候采用一些特殊的序列,比如PN码,那么甚至可以把乘法变成加减法来进行操作。

Read more »

1. 前言

在之前的有学习过Python当中基础的numpy操作是怎样的。在学习的时候还是需要配合具体的例子来熟悉。以恰好我对OFDM的实现比较感兴趣,因此通过Python来学习OFDM的相关知识。在这一篇博客当中来简单实现一下OFDM。

Read more »

1. 前言

FPGA在数字信号处理(DSP)应用方面非常高效,因为它们可以实现定制的、完全并行的算法。 DSP应用使用许多二进制乘法器和累加器,最好在专用的DSP片上实现。 所有7系列FPGA都有许多专用的、完全定制的低功耗DSP片,将高速性与小尺寸相结合,同时保留了系统设计的灵活性。

DSP48E1的常见的一个功能就是实现 P=(A+D)*B+C 这个功能。

Read more »

晚上回家尝试学习一些新的东西。感觉python挺好用的,利用Python当中的numpy和和scipy等工具包可以很好地来处理DSP和无线通信相关的算法,因此我觉得可以简单地来了解一下如何使用Python进行DSP的处理。

Read more »

在这个文档当中,我们将会尝试使用SPI接口来读写A7-Lite上的QSPI Flash。在之前的SD卡读写部分,我们已经介绍了SPI协议,并且使用SPI协议完成了对SD卡的读写,因此在这一部分,将不会花太多内容在如何实现一个SPI协议上,更多的精力将放在对Flash芯片的访问之上。

在A7-Lite上板载了一个ISSI的Flash芯片,IS25LP128,我们首先了解一下这芯片,可以从ISSI的网站上下载这个芯片的数据手册: IS25LP128

Read more »

1. 设备树基本语法

设备树用树状结构描述设备信息,组成设备树的基本单元是 node(设备节点),这些
node 被组织成树状结构,有如下一些特征:

  • 一个 device tree 文件中只有一个 root node(根节点);
  • 除了 root node,每个 node 都只有一个 parent node(父节点);
  • 一般来说,开发板上的每一个设备都能够对应到设备树中的一个 node;
  • 每个 node 中包含了若干的 property-value(键-值对,当然也可以没有 value)来描述该 node 的一些
    特性;
  • 每个 node 都有自己的 node name(节点名字);
  • node 之间可以是平行关系,也可以嵌套成父子关系,这样就可以很方便的描述设备间的关系;
Read more »