1.【十二点】哈希查找的设计设计硬件实现(一):哈希查找
2.蓝牙低功耗(BLE)学习笔记_0
【十二点】哈希查找的硬件实现(一):哈希查找
最近大半年忙于找工作以及撰写毕业论文,暂时没有更新知乎文章。源码
如今终于有了空闲时间,工具计划在知乎上分享一些学到的设计设计知识,分为划水、源码十二点和九分三个系列。工具区块链 ai 源码其中划水系列涉及FPGA/IC设计小技巧,设计设计十二点系列介绍FPGA/IC设计中的源码实用结构(仅供参考,欢迎讨论更好方案),工具九分系列涵盖FPGA/IC设计中的设计设计专业理论知识。
本系列文章将介绍哈希查找及其硬件实现方案,源码分为三部分:哈希查找介绍、工具几种哈希查找的设计设计手游源码泄露硬件实现及其性能比较。
1. 哈希表:哈希表是源码一种可通过键值直接访问的数据结构,键(key)用于标识值(value),工具值是存储的数据,可以是多维的。例如,key用数字表示,value存储IP地址,则表示为、......。通过哈希表存储IP地址,查找或修改某个IP时,可直接通过key来查找。名片互赞源码
2. 哈希查找:哈希查找是将元素集合存储于哈希表中,待查询的元素通过相同的哈希函数计算,得到哈希表访问地址,然后读取对应位置的值进行比较,判断待查询元素是否在集合中。
3. 哈希函数选择:构建哈希表和哈希查找都需要用到哈希函数,一个好的哈希函数可以降低哈希冲突的影响。
4. 哈希冲突及其解决方案:当两个不同值经过同一哈希函数计算得到相同值时,认为发生哈希冲突。解决哈希冲突的方法有:开放定址法、链地址法、公共溢出法、最新表白墙源码再哈希法。
后续文章将简要介绍几种哈希查找硬件实现结构,并比较性能和资源。
所有RTL源码和测试结果已上传至gitee,欢迎有兴趣的朋友参考。
蓝牙低功耗(BLE)学习笔记_0
应用层主要实现业务需求,运行软件以满足用户特定需求。
主机层,即BLE协议栈,管理设备间通信,包含多个协议如L2CAP、Attribute Protocol、python人脸识别源码Security Manager Protocol、GATT、GAP和HCI上半部。通常,协议栈由软件实现,复杂度高,也有硬件协议栈,但不常见。
对于IC设计者,主要关注控制器部分,负责数据包的打包与发送,接收端则负责信号接收与解包。其中包括Link层和物理层,发送端需在Link层打包数据包,物理层负责信号调制并射频发射。
数据流处理过程如下图展示。加密后生成CRC码,白化后发送,接收端实现相反操作。关于Link层的简述到此结束,现在深入探讨物理层。
物理层在2.4GHz频段规定个信道,包含三个广播信道。物理层采用GFSK调制方式。GFSK信号处理框图如下所示。信号首先进行编码,通过NRZ编码器获得NRZ码。
NRZ序列相位存在不确定间断,频谱较宽,带外特性差。为限制带宽,需应用脉冲成型滤波器。BLE规定使用高斯滤波器,其冲击响应如下所示。通过matlab设计高斯滤波器,离散形式如下。
设计参数包括BLE规定值0.5和根据滤波器复杂度与采样频率调整的后两个参数。
高斯滤波器前后的波形对比如下。通过滤波器后,高频分量明显减少。
频谱对比进一步说明,滤波后信号高频分量几乎被滤除。
后续调制部分留待后续章节。FPGA实现时,matlab可生成HDL源码,实现简便。对于固定系数乘法的优化,参考过往bug记录。生成的HDL代码超过知乎限制,无法展示。
仿真结果如图所示,NRZ信号被平滑处理。
总结,BLE技术涉及应用层、协议栈、IC设计、物理层信号处理与FPGA实现。技术细节丰富,涉及加密、CRC、滤波器设计与仿真等关键步骤。参考文献提供了深入研究的起点。