本次作业的目的是使用VHDL和同步设计技术设计一个密码锁,并在FPGA板上实现您的设计。用户界面将是简单的,并基于使用按钮,滑块开关,led和FPGA板上的7段显示。
这份作业的第一部分(在作业表的第二部分)与第四次实验相同。
1.2报告格式和提交程序
实际成果应在夏季学期第一周在实验室进行演示;这个演示占作业分数的20%。作业应写成正式报告(适当长度为7 – 15页,不包括附录),并于21日下午2点前通过Canvas提交st 4月。这份报告占作业分数的80%。报告应包括下列各节:
Copyright By PowCoder代写 加微信 powcoder
仿真结果(包括演示您的设计的仿真屏幕截图)
工作,伴随着对模拟所演示的内容的解释)。综合结果(包括关于您的设计使用了多少硬件,您的设计是否可以安装到比电路板上的Artix 7A100T FPGA更小的设备,以及您关于您的设计的哪部分消耗最多硬件的意见)。
您还应该通过Canvas提交您的VHDL源文件的电子副本。
报告的风格、结构和表达方式
系统分析和设计过程描述设计、实施和评价中的技术成果
实现中的技术成就取决于VHDL代码的质量。这包括代码的易读性、使用有意义的变量名、好的注释、清晰的结构和设计的可修改性等问题。评估中的技术成就是基于你的模拟和综合结果的质量,以及它们被计划和解释得有多好。
创意需要考虑附加的功能,这些功能可以融入到设计中,对用户有用。
2一个简单的数字密码锁
您需要执行的代码序列是您的学生证号码的最后四位数字。例如,如果您的ID是1099562,那么您的代码序列将是数字9、5、6、2。
用户界面的操作如下:
其中一个按钮将用于指示用户希望输入一个代码序列。
在滑块开关上,一个数字将以二进制数字的形式输入
一旦数字在滑块开关上设置好,用户就会使用第二个按钮来指示第一个数字可以读取了。
然后用户使用滑块开关和第二个按钮输入剩下的3位数字。
如果代码序列是正确的,那么将会给出一些合适的视觉指示(例如,您可以选择点亮所有的led)。
您可以使用任何您认为合适的设计技术,但是一个好的开始可能是采用第27讲中的有限状态机模板。
当用户输入4位数字时,应该在4位7段显示。
在输入4位数字后,如果输入的代码不正确,显示屏应通过设置显示为:
“Err”的显示应与所输入数字的显示间隔一秒。
如果输入的代码是正确的,显示器应该通过设置显示为:
“OK”的显示应与所输入数字的显示间隔一秒交替。
修改您的密码锁设计,以便用户可以将密码更改为新的密码。您将需要采取适当的措施,以确保用户在输入新密码前必须正确识别自己。
有时安全系统的用户可能会忘记他们的密码。在这种情况下,通常会提示他们要一些只有他们自己才会知道的“值得记住的信息”。如果此信息输入正确,则用户可以更改密码。更改您的设计,以便它知道用户的生日(表示为4位数字)。如果用户忘记了密码,系统会提示用户输入自己的生日。如果输入正确,则用户可以重置密码。
我们都习惯于在计算机上输入密码来登录服务。密码的一个问题是,有人可能会越过你的肩膀,看到你输入的密码。另外,间谍软件可以记录你的键盘活动,并秘密安装到你的电脑上,拦截你的密码。高度安全的系统(如网上银行系统)尝试通过不要求用户在一次登录中输入整个密码来解决这个问题。例如,他们会要求用户输入4th 和6th 密码中的字母。然后,下次用户登录时,将请求不同的一对字母。
修改您的密码锁设计,以便它将要求用户输入代码序列中的两个数字。系统将提示用户输入哪两个数字。每次用户试图获得访问权限时,系统将对必须输入代码序列中的哪个数字做出不同的选择。
用户界面的操作如下:
第三个按钮将被用来表示用户希望被提示从代码序列中输入两个数字。
系统将在0 ~ 4之间选择一个随机数显示给用户。用户使用滑块开关和第二个按钮正常地从代码序列中输入相应的数字。
系统会在0到4之间选择一个不同的随机数并显示给用户。用户输入代码序列中相应的号码。
如果输入正确,系统自动解锁
创建随机数生成器有几种可能的方法,但最简单的方法是使用非常高速的计数器,该计数器在系统通电后就开始以FPGA的全时钟速率计数。当用户按下第三个按钮时,计数器停止计数。计数器的低阶位可以看作是一个随机数。
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com