广东海洋大学。
eda设计实习》报告。
本课程设计目录:
一、 课程设计的目的:
本课程设计主要是基于vhdl文本输入法设计电子密码锁,随着社会物质财富的日益增长,安全防盗已成为全社会关注的问题。基于eda技术设计的电子密码锁,以其**便宜、安全可靠、使用方便,受到了人们的普遍关注。而以现场可编程逻辑器件(fpga)为设计载体,以硬件描述语言(vhde)为主要表达方式,以quartusⅱ开发软件和gw48eda开发系统为设计工具设计的电子密码锁,由于其能够实现数码输入、数码清除、密码解除、密码更改、密码上锁和密码解除等功能,因此,能够满足社会对安全防盗的要求。
二、 系统设计实现的基本功能。
1) 密码输入:每按下一个数字键,就输入一个数值,并在显示器上显示出该数值。同时将先前输入的数据依次左移一个数字位置。
2) 密码清除:按下清除键可清除前面所有的输入值,清除成为“0000”。
3) 密码更改:按下更改键可将目前数据设定为新的密码。
4) 密码上锁:按下上锁键可将密码锁上锁。
5) 密码解除:按下解除键首先检查输入的密码是否正确,密码正确即解锁。
三、电子密码锁的结构原理。
根据系统设计要求,系统设计采用自顶向下的设计方法。
3.1 电子密码锁的整体结构。
电子密码锁的整体结构如图1所示,它包括密码锁输入模块、控制模块和显示模块等。
原理图:图1
1》密码锁输入模块。
密码锁的输入模块由时序产生电路、键盘扫描电路、键盘译码电路和按键存储电路组成。如下图示:
图2a. 时序产生电路。
产生电路中使用的三种不同频率的工作脉冲波形,即系统时钟脉冲、弹跳消除取样信号和键盘扫描信号。
b. 键盘扫描电路。
扫描电路的作用是提供键盘扫描信号,扫描信号变化顺序依次是1110—1101—1011—0111—1110.--依序地周而复始。
c.键盘译码电路。
上述键盘中的按键分为数字按键和文字按键,每一个按键可能负责不同的功能,例如清除键、上锁键和解锁键等。数字按键主要是用来输入数字的,但是键盘所产生的输出是无法直接拿来用作密码锁控制电路的输入的;另外,不同的按键具有不同的功能,所以必须由键盘译码电路来规划每个按键的输出形式,以便执行相应的动作。
d. 按键存储电路。
因为每一次扫描会产生新的按键数据,可能会覆盖前面的数据,所以需要一个按键存储电路。将整个键盘扫描完毕后的结果记录下来。
按键位置与数码关系(表)图3
图4所示是密码锁输入模块的**波形。
2》密码锁控制模块。
密码锁的控制电路是整个电路的控制中心,主要完成对数字按键输入和功能按键输入的响应控制。
a.数字按键输入的响应控制。
如果按下数字键,第一个数字会从显示器的最右端开始显示,此后每新按下一个数字时,显示器上的数字必须左移一位,一边将新的数字显示出来。
假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有输入的数字,再重新输入四位数。
由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超过四个时,电路不予理会,而且不再显示第四个以后的数字。
b.功能按键输入响应控制。
清除键:清除所有的输入数字,即做归零动作。
上锁键:按下此键时可将密码锁的门上锁(上锁前必须先设定一个四位的电子密码)。
解除键:按下此建辉检查输入的密码是否正确,若密码正确无误则解锁。
图4所示是密码锁控制模块的**波形。
3》密码锁译码模块:
本电子密码锁的显示模块比较简单,其作用是将控制模块的bcd码输出转换为7段显示编码,然后驱动数码管,其**波形如图6所示。
电子密码锁的整合和验证。
要完成电子密码锁的设计,还必须将上述三个功能模块进行整合。其整合电路图如图1所示。
电子密码锁整个系统的**如下图示:
四、设计的心得体会。
此次的设计是参考了《eda技术实验与课程设计》里的程序,不过由于程序里面出现了不少的语法错误,使得在编译时出现了20多个错误,不过在看过书后,细心地检查过程序后方能纠正过来。在纠正的过程中获益良多。
在eda软件平台上,用硬件描述语言vhdl完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和**,直至对于特定目标芯片的适配编译、逻辑映射和编程**等工作。感觉eda还是很有研究价值的,能大大的减少设计者的工作量。
从编写程序到完成此次课程设计,亲自操作软件起来从生硬到熟练,现在能较娴熟的运用quartusⅱ。
附:vhdl源程序。
密码锁输入模块。
library ieee ;
use use
use entity sr is
port(clk_1k: in std_logic;
key_in: in std_logic_vector(2 downto 0);
data_n: out std_logic_vector(3 downto 0);
data_f: out std_logic_vector(3 downto 0);
flag_n: out std_logic;
flag_f: out std_logic;
cqd: out std_logic;
ksel: out std_logic_vector(3 downto 0);
csr: out std_logic_vector(1 downto 0));
end sr;
architecture one of sr is
signal c_qd: std_logic;
signal c_sr: std_logic_vector(1 downto 0);
signal n,f: std_logic_vector(3 downto 0);
signal fn,ff: std_logic;
signal sel: std_logic_vector(3 downto 0);
signal q: std_logic_vector(5 downto 0);
signal c: std_logic_vector(2 downto 0);
begin
data_n<=n;
data_f<=f;
flag_n<=fn;
flag_f<=ff;
cqd<=c_qd;
csr<=c_sr;
ksel<=sel;
c(0)<=key_in(0);
c(1)<=key_in(1);
c(2)<=key_in(2);
counter: block is
begin
process(clk_1k)is
beginif(clk_1k'event and clk_1k='1')then
q<=q+1;
end if;
c_qd<=q(3);
c_sr<=q(5 downto 4);
end process;
sel<="1110" when c_sr=0 else
1101" when c_sr=1 else
1011" when c_sr=2 else
0111" when c_sr=3 else
end block counter;
key_decoder: block
signal z: std_logic_vector(4 downto 0);
begin
process(c_qd)
beginz<=c_sr&c;
if(c_qd'event and c_qd='1') then
case z is
when"11101"=>n<="0000";
when"00011"=>n<="0001";
when"00101"=>n<="0010";
when"00110"=>n<="0011";
when"01011"=>n<="0100";
when"01101"=>n<="0101";
when"01110"=>n<="0110";
when"10011"=>n<="0111";
when"10101"=>n<="1000";
when"10110"=>n<="1001";
when others=>n<="1111";
end case;
end if;
if c_qd'event and c_qd='1' then
case z is
when"11011"=>f<="0100";
when"11110"=>f<="0001";
when others=>f<="1000";
end case;
end if;
end process;
fn<=not(n(3)and n(2)and n(1)and n(0));
ff<=f(2) or f(0);
end block key_decoder;
end architecture one;
密码锁控制模块。
library ieee ;use
EDA课程设计电子琴
自动电子琴。专业 电子信息工程。班级 学号 姓名 组员 指导老师 完成时间 2010 11 26 目录。一 课程设计目的2 二 课程设计内容2 三 课程设计原理2 四 eda vhdl简介3 五 简易电子琴的设计过程3 六 结束语5 七 参考文献6 八 附录6九 评分表9 一 课程设计目的。本课程设...
EDA课程设计电子钟
目录。摘要 1第1章绪论 2 1.1选题背景 2 1.2电子钟简介 2 1.2.1电子钟的特点 2 1.2.2电子钟的发展趋势 2 1.3本实验设计所要实现的目标 3 第2章整体设计思想 4 2.1功能设计 4 2.2设计总体方案 4 2.3设计原理 5 2.3.1时 分 秒计时器 5 2.3.2校...
EDA课程设计 电子时钟
eda课程设计 电子时钟。by 凌步虚zjl 1 在信息产业中eda产生的影响。随着大规模集成电路技术和计算机技术的不断发展,在涉及通信 国防 航天 医学 工业自动化 计算机应用 仪器仪表等领域的电子系统设计工作中,eda技术的含量正以惊人的速度上升 电子类的高新技术项目的开发也逾益依赖于eda技术...