"随机数生成电路设计与实现 - 数电实验六实验报告总结"
版权申诉
91 浏览量
更新于2024-02-22
收藏 2.64MB DOCX 举报
实验六是关于随机数生成电路的设计与实现。实验的任务要求是设计并实现一个随机数生成电路,每2秒随机生成一个0~999之间的数字,并在数码管上显示生成的随机数。同时为系统设置一个复位键,复位后数码管显示学号后三位(“092”),2秒后再开始每2秒生成并显示随机数,要求使用按键复位。
在电路设计及VHDL代码部分,总体的构思是分模块化设计分模块化实现,顶层采用状态机的方式实现。根据系统所需要的功能,大概可以分为7个模块,包括按键防抖模块,分频器模块(一个2000分频,一个10分频,外部时钟为1kHz),M序列发生器模块,译码模块,位选信号模块,以及顶层。这些模块间的连接关系如图1-1所示。
对于防抖模块,采用100Hz的时钟进行采样型防抖,两个采样点之间为从0变到1时才认为是一次有效的按键发生,同时输出的时候与时钟的下降沿作一个同步。而对于分频模块,则是通过计数器进行分频。通过计数器从0计数到999,实现一次电平的翻转,这样输出的时钟中低电平包含1000个时钟周期。
在M序列发生器模块的设计中,使用了反馈寄存器实现了期望的序列,而译码模块用于将生成的随机数转化为对应的数码管控制信号,从而实现在数码管上的显示。最后,位选信号模块则是用于控制数码管的位选。
实验结果表明,设计的随机数生成电路可以实现每2秒随机生成一个0~999之间的数字,并在数码管上正确地显示生成的随机数。同时,复位键也能够实现预期的功能,即复位后数码管显示学号后三位“092”,2秒后再开始每2秒生成并显示随机数。
通过这次实验,我掌握了基于状态机的电路设计方法,并加深了对分模块化设计的理解。同时,在VHDL代码的编写和模块化实现上也有了更深入的学习和掌握。这次实验不仅让我通过动手实践更深入地理解了数字电路的原理,同时也提高了我的动手能力和实际操作能力。这对于我今后的学习和工作都是非常有益的,我会继续努力学习,不断提高自己的专业能力。
2022-07-11 上传
2022-07-14 上传
2022-10-13 上传
2022-10-15 上传
2022-07-13 上传
2022-07-14 上传
2022-07-14 上传
G11176593
- 粉丝: 6869
- 资源: 3万+
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器