用verilog描述的i2c代码二线I2CCMOS串行EEPROM的设计是根据I2C协议,以及EEPROMAT24C02的datasheet来进行设计的。
基于I2C的设计很多,归根到底是控制SDA线及SCL线来让设备间进行通信。
它有固定的帧格式。
本设计中Sda数据线与各模块是通过寄存器来进行数据的输入输出。
EEPROM模块是进行行为级描述的,它是根据具体芯片来写的模仿逻辑,不可综合。
EEPROM_WR是读写控制程序,是通过开关组合电路和控制时序电路组成的。
开关组合电路其实就是选择在SDA及DATA上的数据,根据信号来选择输出。
具体的控制时序电路就是一个状态机来完成。
Signal模块是测试用的,以前只接触过一些简单的testbench,在这次实验中,由于testbench理解的不透彻,用modelsim仿真的时候地址和数据线处于不定态,但是整个的时序是正确的。
2017/9/13 13:03:32 174KB i2c verilog
1
信号验证努力开始验证信号,以演示该过程中的SAWPython前端。
建筑首先使用wllvm构建信号位码从根目录(确保已更新子模块)$cdlibsignal-protocol-c/$mkdir构建$cd构建$LLVM_COMPILER=clangcmake-DCMAKE_BUILD_TYPE=Debug-DCMAKE_C_COMPILER=wllvm..$LLVM_COMPILER=c$extract-bc-bsrc/libsignal-protocol-ca我不知道我们能否可以在SAW中使用该输出Python环境*/signal-verification$python3-mvenvvirtenv(vscode要求我在此处为环境添加venv。
我说是的,请在vscode中重新加载终端或)。
2017/3/4 9:41:57 5KB Python
1
实验一Linux系统的安装及用户界面的使用一.实验目的1.了解Linux系统的安装、熟悉系统的启动过程和使用环境。
2.掌握Linux环境下vi编辑器的使用方法。
3.掌握Linux系统中编辑、编译、调试、运行一个C语言程序的全过程。
二.实验内容1、实验要求1.在VMWare虚拟机环境或真实物理机器上,安装一个Linux操作系统。
2.体验Linux操作系统中XWindows系统的使用。
3.尝试Linux系统键盘命令的使用,并熟练掌握常用的基本命令。
4.掌握命令行方式下vi编辑器的使用。
5.编写一段C程序,使用系统调用fork()创建两个子进程。
各进程显示不同的信息,如父进程显示字符“a”,子进程分别显示字符“b”和“c”。
多次运行观察显示结果,并分析产生这种执行效果的原因。
实验二Linux进程控制一.实验目的1.掌握进程的概念,明确进程和程序的区别。
2.认识和了解并发执行的实质。
二.实验内容1、实验要求1.编写一段程序,使用系统调用fork()创建两个子进程。
各进程显示不同的信息,如父进程显示字符“a”,子进程分别显示字符“b”和“c”。
多次运行观察显示结果,并分析产生这种执行效果的原因。
2.修改上面编写的程序,将每个进程的输出由单个字符改为循环输出一句话,如父进程显示:“parent:”加上进程ID,子进程分别显示:“Child1:”(或“Child2:”)加上自己的进程ID。
再观察程序执行时屏幕上出现的现象,并分析原因。
3.一个父进程创建一个子进程,子进程通过exec系统调用执行另一个文件。
各自的代码中显示不同的信息,观察其运行结果,分析两个进程并发执行的效果。
4.编写程序创建如图所示的进程树,在每个进程中显示当前进程ID和父进程ID。
实验三Linux进程间通信一.实验目的(1)分析进程争用临界资源的现象,学习处理进程互斥的方法;
(2)学习如何利用进程的“软中断”、管道机制进行进程间的通信,并加深对上述通信机制的理解;
(3)了解系统调用pipe()、msgget()、msgsnd()、msgrcv()、msgctl()、shmget()、shmat()、shmdt()、shmctl()的功能和实现过程,利用共享存储区机制进行进程间通信。
二、实验内容1、实验要求(1)进程的控制修改已编制的程序,将每个进程输出一个字符修改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析出现问题的原因,进一步理解各个进程争夺临界资源的情况。
如果在程序中使用系统调用locking()来给每一个进程加锁,可以实现进程之间的互斥,试观察并分析出现的现象。
(2)进程的软中断通讯编制一段程序,实现进程的软中断通讯:使用系统调用fork()创建两个子进程;
再使用系统调用signal()让父进程捕捉键盘上来的中断信号(即按Del键);
在捕捉到中断信号后,父进程用系统调用kill()向两个子进程发信号;
子进程捕捉到信号后分别输出下列信息后终止:Childprocess1iskilledbyparent!Childprocess2iskilledbyparent!父进程等待两个子进程都终止以后,输出如下信息后终止:Parentprocessinkilled!(3)进程的管道通讯编制一段程序,实现进程的管道通讯:使用系统调用pipe()建立一条管道线;
两个子进程分别循环向这条管道写一句话:Child1issendingamessage!Child2issendingamessage!而父进程则循环从管道中读出信息,显示在屏幕上。
实验报告内含源代码
2019/6/17 5:27:26 267KB ubuntu
1
用C++实现的计算离散序列的自相关序列与互相关序列,代码中有详细的阐明,计算式参考http://www.mathworks.cn/cn/help/signal/ref/xcorr.html,并且计算结果与matlab中完全一样,实现了float和complex的有偏和无偏估计,
2019/2/11 16:18:37 2KB 自相关 互相关 C++
1
QT实现倒计时完好工程,精确到毫秒mstimer=newQTimer();connect(timer,SIGNAL(timeout()),this,SLOT(timerOver()));timer->start(1);//一秒钟后开始触发,然后一m秒一次
2016/2/7 22:48:56 5KB QT 倒计时 完整工程
1
该书是一本声学和语音信号处理领域的专著,全面系统地阐述了麦克风阵列的理论和应用。
全书共分为十章,涵盖了麦克风阵列信号处理领域中最重要的主题。
每章沿着从基本理论到实际应用的脉络进行描述,希冀为读者建立起最重要的基本概念。
[1]全书各章基本是自含的,可以按需求单独阅读每一章。
第1章介绍麦克风阵列的概念、特点和应用,以及全书组织结构。
第2章阐述了线性最优滤波器,这是麦克风阵列信号处理的基础。
第3章介绍了传统的窄带波束成形技术,引入了宽带波束成形的原理。
第4章介绍如何将线性限制最小方差滤波器(LCMV)用于室内声音环境下的噪声抑制和去混响。
第5章在一个统一的数学框架下,介绍了几种典型的单通道噪声抑制算法在麦克风阵列噪声抑制中的应用。
第6章在单通道和多通道两个方面介绍了频域最优滤波器,侧重协助读者理解在多通道条件下频域滤波器的工作原理。
第7章从多输入多输出(MIMO)系统的角度介绍了麦克风阵列在信源提取、去混响和干扰抑制等方面的应用。
第8章是第7章的延续,介绍了如何使用两步策略处理干扰源及混响问题。
第9章介绍了麦克风阵列条件下的波达方向(DOA)和时延估计(TDOA)问题。
第10章对本书中没有涉及的几个问题进行了讨论。
本书可以作为通信、信号处理和声学等相关专业研究生的教材或教学参考书,也可供从事相关工作的科研及工程人员参考。
[1]
2019/8/6 23:54:47 27.59MB 麦克风阵列 音频 信号处理 语音增强
1
国外经典教材,中科院冀连营老师基础就是按照这本书讲的
2022/9/8 14:18:15 21.08MB 数字信号处理
1
【源码】数字信号处理:实际与计算实例
2016/4/22 7:31:24 15.9MB 数字信号处理
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡