"实验六:随机数生成电路设计与实现报告"

版权申诉
0 下载量 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秒生成并显示随机数的效果。 综上所述,本实验通过采用分模块化设计的方式,成功实现了随机数生成电路的设计与实现。这也为我们在数字电路的学习和实践过程中提供了重要的实际经验和理论基础。