"实验六:随机数生成电路设计与实现报告"
版权申诉
50 浏览量
更新于2024-03-09
收藏 2.64MB DOCX 举报
实验六随机数生成电路的设计与实现
本实验的任务要求是设计并实现一个随机数生成电路,每2秒随机生成一个0~999之间的数字,并在数码管上显示生成的随机数。同时,需要设置一个复位键,复位后数码管显示学号后三位(“092”),2秒后再开始每2秒生成并显示随机数,要求使用按键复位。
对于电路设计及VHDL代码的设计思路,我们采用了分模块化设计的思路进行总体构思。大致上可以分为7个模块,包括按键防抖模块,分频器模块(一个2000分频,一个10分频,外部时钟为1kHz),M序列发生器模块,译码模块,位选信号模块,以及顶层。这些模块的连接关系如图1-1所示。
首先,对于防抖模块,我们采用了100Hz的时钟进行采样型防抖,即在两个采样点之间从0变到1时才认为是一次有效的按键发生,同时输出的时候与时钟的下降沿作一个同步处理。
其次,对于分频模块,我们通过计数器进行分频。这里以2000为分频比进行详细说明。通过计数器从0计数到999,实现一次电平的翻转,这样输出的时钟中低电平包含1000个时钟周期。而10分频则是通过外部时钟1kHz进行分频得到。
再次,M序列发生器模块用于产生比特流,这里使用了长度为10的LFSR实现序列的生成。
而译码模块则是将生成的比特流转化为数字显示在数码管上。位选信号模块则是用于选择不同数码管的显示。
最终,所有这些模块的连接关系和实现通过顶层进行组织和实现。具体的VHDL代码的编写和电路设计的细节请参考实验报告。
在实验过程中,我们按照实验要求分模块化地设计并实现了随机数生成电路,并成功实现了每2秒随机生成一个0~999之间的数字,并在数码管上显示生成的随机数的功能。同时,复位键的设置也成功实现了复位后数码管显示学号后三位(“092”),2秒后再开始每2秒生成并显示随机数的效果。
综上所述,本实验通过采用分模块化设计的方式,成功实现了随机数生成电路的设计与实现。这也为我们在数字电路的学习和实践过程中提供了重要的实际经验和理论基础。
2022-07-11 上传
2022-07-14 上传
2022-10-13 上传
2022-10-15 上传
2022-07-13 上传
2022-07-14 上传
2022-07-14 上传
不吃鸳鸯锅
- 粉丝: 8498
- 资源: 2万+
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- 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演示查看器