基于fpga的简易逻辑分析仪的设计与仿真完整毕业设计论文(编辑修改稿)内容摘要:

来时,对输入的逻辑信号进行一次移位并输出。 使用 VHDL 语言编程并在 Quartus II 中生成的该模块符号图如图 所示。 CLKLOADD[7..0]Q[7..0]SHIFTXinst 循环移位寄存器的仿真结果如图 所示。 图 中 CLK 为时钟信号, LOAD 为工作信号 , D 为预置信号, Q 为输出观察信号。 从图中可以看出,当时钟信号上升沿到来且 LOAD 信号处于低电平时 , 循环移位寄存器开始工作产生数据流。 可以看到该循环移位寄存器模块很好的实现了其功能,符合设图 循环移位寄存器 元件符号 图 图 循环移位寄存器时序仿真图 苏州大学本科生毕业设计(论文) 13 C LKUEN USET UR ESE TUC LK1LO AD AD U [7. .0]Q U [7. .0]SH Uins t计要求。 数字信号发生器仿真 使用 VHDL 语言编程并在 Quartus II 中生成的该模块符号图如图 所示。 数字信号发生器的仿真结果如图 所示: 图 是数字信号发生器在预置信号为 00000101( 5)时产生的循环序列仿真图,CLK1 是 1MHz 有源晶振, CLKU 为系统时钟, LOADA 是工作信号。 在使能信号ENU 处于高电平状态,时钟信号 CLKU 上升沿到来并且加载信号 LOADA 处于低电平时,预置寄存器将预置信号 00000101( 5)送入循环移位寄存器,从而产生连续不断循环的数据流。 从仿真图可以看出此数字信号发生器模块功能完全符合所需要求。 图 数字信号发生器仿真图 图 数字信号发生器元件符号图 苏州大学本科生毕业设计(论文) 14 触发电路实现与仿真 该模块的设计框图如图 所示。 该模块的作用:在系统电路上电之后,数字信号发生器会源源不断地输出数据流,而触发电路模块会一直接收数据流,并且一直检测输入的数据流序列与预置触发字的逻辑状态是否相同。 只有当 8 路信号的逻辑状态与预置触发字的逻辑状态完全相同时,才会产生一个触发信号发送出去,作为触发模块后面几个模块的控制信号。 图 为触发电路的符号图。 触发模块的仿真结果如图 所示。 图 触发电路 元件符号 图 C LKIN PU TM [7. .0]IN PU TN [7. .0]PEQH C T688ins t5苏州大学本科生毕业设计(论文) 15 在图 中, CLK 为时钟信号, INPUTM、 INPUTN 分别为输入测试信号、预置触发字, PEQ 为输出观察信号。 可以看到,在每个时钟上升沿到来时,触发电路都会对输入数据 INPUTM 和预置触发字 INPUTN 进行对比,若不相同则输出低电平,若在某一个时钟上升沿触发则将一直输出高电平。 如图 所示,当输入数据流 INPUTM的逻辑状态为 00001001( 9)和预置触发字的逻辑状态 00001001( 9)相同时,之后将一直输出高电平。 从仿真图可以看出,该触发电路模块实现了所需功能,完全符合设计要求。 存储器 REGN 的实现 存储器 REGN 的设计框图如图 所示。 该模块的作用:数字信号发生器产生的数据流在源源不断输出到触发电路的同时,也会不断的输出到这一模块。 当触发电路触发后产生的使能信号 EN 到来即为高时,存储器 REGN 才会允许输入端的数据流进行输出。 使用 VHDL 语言编程并在 Quartus II 中生成的该模块元件图如图 所示。 存储器 REGN 的仿真结果如图 所示: 图 存储器 REGN 元件符号 图 图 触发电路时序仿真波形 C LKEND AT A[ 7. .0]Q[ 7. .0]R EG Nins t6图 存储器 REGN 仿真波形图 存储器 REGN 数据流 EN 图 存储器 REGN 的 结构 框图 苏州大学本科生毕业设计(论文) 16 在图 中, CLK 为时钟信号, EN 为使能信号, DATA 为输入测试信号, Q 为输出观察信号。 从图 显示的仿真波形看到,在时钟上升沿以及 EN 高电平到来时,REGN 很好的将数据 4 及 4 之后的数据都进行了输出,实现了它的功能,完全符合设计要求。 640 分频器 FREQ 的实现 由于数字信号发生器产生的每个数据周期是 10us,而我们的 RAM 需要实现在一个周期中,先写入 32 个数据,再读出 32 个数据的功能。 这就需要向 RAM 输入一个周期为 640us 的控制信号。 而有源晶振的频率为 1MHz,这样我们就可以设计一个 640 分频器产生这样的控制信号。 640 分频器的框图如图 所示。 该模块的作用:当触发电路触发后产生的使能信号 ABLE 到来时,分频器电路开始工作,对 1MHz 的时钟信号进行 640 分频,得到一个周期为 640us 的时钟信号输出给RAM 作为 RAM 的读写控制信号,之后, RAM 就可以在一个周期的读写信号控制下写 32 个数据,读 32 个数据。 使用 VHDL 语言编程并在 Quartus II 中生成的该模块符号图如图 所示。 C LKABLEOU TPU TFR EQinst3 分频器 CLK ABLE 图 分频器 框图 图 分频器元件符号 图 苏州大学本科生毕业设计(论文) 17 640 分频器的仿真结果如图 所示。 在图 中, CLK 为时钟信号, OUTPUT 输出信号。 从仿真图看到,当分频器工作的时候,高频时钟信号被分成了一个低频时钟信号。 640 分频器模块完全能够实现所需要求,符合设计要求。 存储器 RAM 的实现 RAM 存储器用于存储采集的数据,其设计框图如图 所示。 该模块的作用: RAM 作为整个设计中最核心的模块,需要完成数据的采集和处理工作。 在系统时钟的作用下,当触发电路触发后产生的使能信号 CS 到来时,这时候读写控制信号 OE 也会同时到来,并且 OE 处于高电平。 这时候 RAM 启动,并开始对输入的数据流进行采样,之后将采集得来的信号数据写入 RAM 中,采样存储时间持续 32 个系 统时钟周期,亦即 32bit 每一通道,然后结束存储。 此时 OE 的高电平状态会结束 并进入 低电平状态,此时 RAM 读出先前存储的 32bit 数据。 从 CS 片选信号到来的那一刻,每过一个系统时钟, RAM 内部都有一个计数器加一,当计数满 64 次之后,关闭 RAM,停止读写。 使用 VHDL 语言编程并在 Quartus II 中生成的该模块符号图如图 所示。 图 640 分频器 仿真图 RAM 数据流 CS OE 图 RAM 实现框图 CLK 苏州大学本科生毕业设计(论文) 18 W ID T H 32 S ig n e d In t e g e rD E P T H 32 S ig n e d In t e g e rP a r a m e t e r V a l u e T y p eC LKAD D R [ 4. . 0]CSOED AT A_I [ 7. . 0]D AT A_O[ 7. . 0]R AM 5in s t 存储器 RAM 的仿真结果如图 所示。 在图 中, CLK 为时钟信号, CLK_EN 为使能信号, CLR 为计数器复位信号,高电平有效; CS 为 RAM 片选信号,高电平有效; OE 为 RAM 读写信号,高电平写入,低电平读出; D 为地址信号。 从图 仿真图看到当片选信号 CS 高电平到来时, RAM开始工作,此时读写信号 OE 为高电平,写入 32 个数据,此时没有输出。 32 个时钟过后,图 RAM 的 元件符号 图 图 存储器 RAM 仿真图 图 OE 低电平期间读出的 32 个数据放大图 图 OE 高电平期间写入的 32 个数据放大图 苏州大学本科生毕业设计(论文) 19 OE 为低电平, RAM 开始读出刚刚写入的 32 个数据,当读完这 32 个数据之后, RAM关闭。 从仿真图看出,该模块很好地实现了所需要的功能,完全符合设计要求。 苏州大学本科生毕业设计(论文) 20 第四章 系统 顶层的实现与仿真 系统顶层原理图 将第三章设计的数字信号发生器模块,触发模块,存储器 REGN 模块, RAM 模块在 Quartus II 中对应接口连接起来之后,得到如图 所示的系统顶层原理图。 系统顶层仿真图 在 20xxus 时间观察域,系统时钟信号为 ,有源晶振 1MHz 的基础上,得到的系统顶层仿真结果如图 所示。 图 系统顶层原理图 图 系统顶层仿真图 苏州大学本科生毕业设计(论文) 21 在图 的系统仿真图中, CLK 为系统时钟; CLK1 为有源晶振; CLK_EN 使能信号 ; CLR 为计数器复位信号; LOADA 为数字信号发生器开始工作信号; DU 为预置信号; datab 为预置触发字; A 为数字信号发生器产生的数据流观察信号; B 为触发信号观察信号,亦即 RAM 片选信号; C 为 OE 读写信号观察信号; D 为计数器地址信号; DATA_O 为输出端口。 整个系统大致的运行流程是这样的:当数据流序列与预置触发字 130( 10000010)相同时,立刻触发,触发信号 B 在 130( 10000010)之后将一直保持高电平。 此时分频器启动将时钟信号 CLK1 进行 640 分频成读写信号 OE 输出到 RAM 中,与此同时触发信号 B 也输出到 RAM 中,作为片 选信号 CS,启动 RAM。 在。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。