信号与信息处理研究生作业3.docx
- 文档编号:2384840
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:28
- 大小:192.09KB
信号与信息处理研究生作业3.docx
《信号与信息处理研究生作业3.docx》由会员分享,可在线阅读,更多相关《信号与信息处理研究生作业3.docx(28页珍藏版)》请在冰点文库上搜索。
信号与信息处理研究生作业3
8位乘法器设计
一、设计原理
乘法器的设计有多种方式,其中最节省资源的设计方法是移位相加。
其只需要一个移位电路和一个加法器,结构简单,容易设计,同时需要的门电路较少。
但是其带来的问题是一个乘法运算需要的运算时间较长,以一个8位的乘法器为例:
一个乘法运算所需要的时钟周期为8。
如果要设计一个运算时间为一周期的乘法器我们可以通过设计组合逻辑电路的方法得到,例如一个设计一个2位乘法器
其输入为2个2位二进制数:
a1,a0;b1,b0。
输出为一个4位的2进制数Q3,Q2,Q1,Q0。
容易得到求取Q3,Q2,Q1,Q0的布尔表达式:
由于只有2个二进制数的最后一位均为1时,Q0的输出才为1,所以Q0的布尔表达式为:
Q1的真值表如下:
a1,a0
b1,b0
00
01
11
10
00
0
0
0
0
01
0
0
1
1
11
0
1
0
1
10
0
1
1
0
从而得到Q1的布尔表达式为:
Q2的真值表如下:
a1,a0
b1,b0
00
01
11
10
00
0
0
0
0
01
0
0
0
0
11
0
0
0
1
10
0
0
1
1
从而得到Q1的布尔表达式为:
由于只有2个2位二进制数均为11时,Q3的输出才为1,所以Q3的布尔表达式为:
根据以上布尔表达式设计的2位2进制乘法器的逻辑电路图如下:
图一、2位乘法器电路图
当我们要用这种方法设计4位乘法器时已经比较困难了,需要的门电路也非常之多。
我们可以以2位乘法器为基础设计4位乘法器。
考虑乘法运算公式如下:
可以设计如下4位乘法器:
图二、4位乘法器电路图
同理我们可以在4位乘法器的基础上设计如下8位乘法器:
图三、4位乘法器电路图
上图中mgnd只是提供一些接地脚其结构如下:
图四、mgnd电路图
二、波形仿真
从以上的输出结果我们可以看出所设计的乘法器实现了8位乘法器的功能。
三、实验结果讨论
通过以上方法设计的乘法器在设计上比较简单,整个电路中使用了12个8位加法器、3个16位加法器、16个2位乘法器,其所使用的门电路远远多于使用移位相加的乘法器所使用的门电路。
但是其理论上能在一个时钟周期内完成8位乘法电路,考虑到逻辑门的延时,为了得到最终结果需要经过多个逻辑门的延时,总的延时可能多于一个时钟周期,但也远快于移位相加乘法器的8个时钟周期。
2009研究生VHDL作业习题
题目一、请分别画出如下VHDL程序所描述的一个电路模型。
(1)
Process(CLK)
Begin
if(CLK'eventandCLK'1')then
X<=AandB;
Y<=X;
Z<=Y;
Endif;
EndProcess;
解答:
(2)
Process(CLK)
VariableX,Y:
std_logic;
Begin
If(CLK'eventandCLK'1')then
X:
=AandB;
Y:
=X;
Z<=Y;
Endif;
EndProcess;
解答:
Y
X
(3)
Process(CLK)
Begin
if(CLK'eventandCLK'1')then
Z<=Y;
Y<=X;
X<=AandB;
Endif;
EndProcess;
解答:
(4)
Process(CLK)
VariableX,Y:
std_logic;
Begin
If(CLK'eventandCLK'1')then
Z<=Y;
Y:
=X;
X:
=AandB;
Endif;
EndProcess;
解答:
题目二、采用SR锁存器可实现时钟信号的双相化,其如图所示,请画出其对应输入的输出波形,并指出其特征。
解答:
假设上图的或非门和非门的平均传输延迟时间为t,以及初始状态为Q=0。
可得以下波形:
D
A
从上图可以看出两个时钟的相位相反,且不会同时处于状态1
深圳大学实验报告
实验项目名称:
随机数发生器
学院:
信息工程学院
专业:
信号与信息处理
指导教师:
朱明程教授
报告人:
刘万峰
学号:
2080130206
实验时间:
2009-5-10
实验报告提交时间:
2008-7-6
随机数产生器设计
实验要求:
随机数发生器可产生两个随机数,由一开关(RIN)进行控制,RIN为1时随机数发生器被清除,RIN为0时随机数发生器将产生1-6的两个随机数,可由LED数码管显示。
1.根据给出的逻辑电路图,自行分析该随机数发生器的逻辑功能
2.利用图形设计,采用相应的EDA工具,进行设计输入、功能仿真及设计实现等,最后进行数据下载和硬件功能检验。
3.写电路的设计实验和原理分析报告。
实验步骤:
1.将各个功能模块的原理图输入,并分析其逻辑功能。
随机数产生器的顶层设计图如下:
图1.顶层原理图
该随机数产生器可以划分成5大模块:
缓冲模块、随机数产生模块、控制随机数模块、选择器模块、数码管显示模块。
1)缓冲模块ROLL
图2.ROLL模块
此电路为一缓冲器,目的是为了是输入信号R_IN稳定。
2)随机数产生模块RONDOM
图3.产生两个随机数的模块
此模块中包含一子模块DICK其电路图如下:
图4.DICK模块
DICK_SCH模块模块功能如下:
当RL为1,且CLKR上升沿时,便产生一个3位的随机数。
RONDOM模块功能如下:
当RL为1,且CLKR上升沿时,便产生一个3位随机数。
当在q2的上升沿时产生另一随机数。
3)控制随机数模块MUXCOM
图5.MUXCOM模块
电路完成的是一个2位同步计数器的功能:
4)选择器模块SELECT
图6.SELECT模块
此电路完成的功能是:
当S1S0为“01”时选择B3B2B1作为输出;当“11”时,选择A3A2A1作为输出;当S1S0为其它状态时,输出0。
5)数码管显示模块SEG7
图7.SEG7模块
6)从图中可以看出,此电路完成的是对1-6的数字进行显示。
对顶层图原理图进行仿真得到如下仿真波形:
图8.对顶层原理图进行仿真的波形
从上图可以看出,当IPAD=1时,不产生随机数,当IPAD=0时产生两个随机数,两随机数交替显示。
深圳大学实验报告
实验项目名称:
交通灯控制器的设计与实现
学院:
信息工程学院
专业:
信号与信息处理
指导教师:
朱明程教授
报告人:
刘万峰
学号:
2080130206
实验时间:
2009-5-10
实验报告提交时间:
2008-7-6
实验二交通灯控制器的设计与实现
一、问题说明
该交通灯系统为一个十字路口交通管理信号灯,用于主干道与乡间公路的交叉路口,要求是优先保证主干道的畅通,因此平时处于“主干道绿灯,乡间道红灯”状态,只有在乡间公路有车辆要穿行主干道时才将交通灯切向“主干道红灯,乡间道绿灯”,一旦乡间公路无车辆通过路口,交通灯又回到“主绿,乡红”的状态。
此外,主干道每次通行的时间不得短于1分钟,乡间公路每次通行时间不得长于20秒。
而在两个状态交换过程中出现的“主黄,乡红”和“主红,乡黄”状态,持续时间都为4秒。
1)初步方案考虑
交通灯的状态转换规律如图所示
乡有车
S=1
主绿,乡红
主黄,乡红
4秒
4秒
主红,乡黄
主红,乡绿
乡无车
S=0
乡间公路有车辆欲穿行路口时,应向交通灯控制器发一个请求信号S,这可以由乡间公路右侧埋设的传感器产生。
根据以上分析画出交通灯控制器的简单框图、简单流程图、简单波形图。
乡
间
道
C
MC,CR
主
干
道
M
R
R
S=1
Y
Y
交通灯控制器
Y
G
G
t≥60s
CP
S
Y
S
MY,CR
t=4s
MG
60s
Y
MY
4s
MR,CG
MR
S=1
Y
CR
t≥20s
CG
20s
CY
4s
MR,CY
S=1
Y
二、详细方案
由于系统的运行有4个状态,因而控制器也应有4个状态。
系统的6个输出各与一定的状态相对应,只要通过一些门电路即可完成对信号灯的控制,但由于信号灯的功率一般都很大,所以在每盏灯前面必须有驱动电路。
在实验中,不用作驱动电路,只要输出信号驱动二极管发光管。
系统的输入只有传感器S。
S是一个电平信号,有车辆通过时传感器输出S有效。
除了输入输出外,系统的主要部件是计数器,可用外加的信号CP作为时钟信号,计数器计至4秒、20秒、60秒时应分别向控制器反馈信息,表示持续时间已到,根据情况转换状态。
系统应有一信号CLR控制计数器,使被清零同时失效或计数有效。
通过以上分析得到系统的方框图。
S
控
制
器
CLR
60s
计数
器
分频
器
20s
CP
4s
三、实现交通灯控制器的VHDL代码
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitytraffic_lightis
Port(CLK:
instd_logic;
S:
instd_logic;
MG:
outstd_logic;
MY:
outstd_logic;
MR:
outstd_logic;
CR:
outstd_logic;
CY:
outstd_logic;
CG:
outstd_logic);
endtraffic_light;
architectureBehavioraloftraffic_lightis
SIGNALMSTOP:
Bit:
='1';
SIGNALCSTOP:
Bit:
='1';
SIGNALMchange:
Bit:
='1';
SIGNALCchange:
Bit:
='1';
SIGNALRESET:
Bit:
='1';
SIGNALCOUNT:
INTEGER:
=0;
ConstantDelay:
INTEGER:
=4;
ConstantMpasstime:
INTEGER:
=60;
ConstantCpasstime:
INTEGER:
=20;
begin
process(CLK,RESET)
begin
ifRESET='1'then
COUNT<=0;
RESET<='0';
elsifCLK='1'andCLK'eventthen
COUNT<=COUNT+1;
endif;
ifCOUNT=Mpasstimethen
MSTOP<='1';
endif;
ifCOUNT=Cpasstimethen
CSTOP<='1';
endif;
ifCOUNT=delaythen
Mchange<='1';
Cchange<='1';
endif;
if(s='0'ands'event)or(CSTOP='1'andCSTOP'event)then
RESET<='1';
MG<='0';
MY<='0';
MR<='1';
CR<='0';
CG<='0';
CY<='1';
Cchange<='0';
endif;
ifCchange='1'andCchange'eventthen
RESET<='1';
MG<='1';
MY<='0';
MR<='0';
CG<='0';
CY<='0';
CR<='1';
MSTOP<='0';
endif;
ifs='1'ands'eventandMSTOP='1'then
RESET<='1';
MG<='0';
MY<='1';
MR<='0';
CG<='0';
CY<='0';
CR<='1';
Mchange<='0';
endif;
ifMchange='1'andMchange'eventthen
RESET<='1';
MG<='0';
MY<='0';
MR<='1';
CG<='1';
CY<='0';
CR<='0';
CSTOP<='0';
endif;
endprocess;
endBehavioral;
三、系统仿真
深圳大学实验报告
实验项目名称:
简易数字锁
学院:
信息工程学院
专业:
信号与信息处理
指导教师:
朱明程教授
报告人:
刘万峰
学号:
2080130206
实验时间:
2009-5-10
实验报告提交时间:
2008-7-6
实验三简易数字锁
一、问题说明
设计的是一个保险柜的数字锁控制电路。
首先最主要的问题是安全,也就是开锁的密码被破译的可能性要尽可能小;其次是操作方便,开锁的程序不过于复杂。
此外还有一些特殊要求,例如可预置和更改密码,多次输入错误密码应启动报警系统,使用者在拨错号码时可将原拨号码清除重拨,段码显示等。
1)初步方案
先看安全性问题。
普通机械密码锁保险箱采用3位十进制码,破译的可能性为千分之一,除了密码外还有一个锁孔,需钥匙投对才能开锁,钥匙投对的可能性常也在百分之一到千分之一,因此总的开锁率约为10-6左右。
现改用全数字锁,如采用2进制码,要达到这样高的安全性能,就要采用20位码,这将是一个难以记熟的密码,操作也极麻烦,故宜采用10进制或16进制密码,但即使如此,所使用的密码的位数仍然较多(5至6位)。
其次,密码锁解锁的基本方法是“符合”,即当所有送入的密码与预置的密码相同时解锁。
密码输入的方式有并行和串行。
显然,并行方案需要的输入太多,相应地系统硬件多、成本高,而用串行输入方式,所用器件可以减少,而且还有另一个优点,串行输入必须用时序电路实现,对结果的判别与操作程序无关。
例如,对一个3位密码而言,多拨一位,少拨一位皆属错误,这无疑大大加强了系统的可靠性,因而使用串行方法,码的位数可以减少。
故设计宜采用串行数字锁并对操作过程有所规定。
既然采用串行数字输入,就得有个起始标志和结束标志。
起始标志可采用复位信号,将电路恢复到起始状态。
设复位信号由START键产生,然后开始受数码输入,当接受确定的几个数码(例如3个十进制数)后,应送入结束标志,由ENTER键产生。
若前面输入的3个号码正确,便可开门,否则发出“嘟”一声,提示输入错误,可按START键重新输入,但连续三次输入错误,就不可输入。
若使用者不慎按错号码,也可按START键重新接受密码输入。
系统接通电源即进入安锁状态。
保险箱门被打开后被关上时,数字锁系统还未工作,处于待锁状态,须按一下SETUP键才能使数字锁锁上,进入安锁状态。
通过以上分析,可以确定系统的简单框图、基本操作流程。
接通电源
段码显示
安锁状态
START
Y
发出“嘟”一声
键
盘输入
电
子
锁
拨号状态
正确
Y
开锁状态
关门按“SETUP”
2)详细方案
首先是输入电路。
号码0~9、开始输入(START)、确认密码(ENTER)、安锁(SETUP)等控制信号可用按键开关实现。
密码输入方法是用10个按键开关,不同的数码用不同的键。
其次是输出。
数字锁的输出:
一是开门信号,当拨号正确又按动ENTER键后,应发出信号,打开数字锁(若是自动装置,将启动电机,使保险箱门缓缓打开),此时可用一只绿色信号灯LO标示开门状态;二是报警,发出报警信号,可以用红色信号灯表示。
以上开门信号、报警信号一旦出现,就一直保持下去,直至使用者按动SETUP键或保安人员按动内部I_SETUP键为止。
再次是预置问题。
方法是在系统内安排一个存储器(EEPROM),各将存放三位十进制数,但三个数的置入,需在控制器控制下按一定程序完成,实验时可用一块已置入密码的EEPROM。
开锁处理事务毕后,应将门关上,按SETUP键,使系统重新进入安锁状态。
(若在报警状态,按SETUP或START应不起作用,需另用一内部I_SETUP键才能使系统进入安锁状态,此内部I_SETUP键应放置在保安人员值班室或其它使用者不能接触的地方。
)
二、实现简易数字锁的VHDL代码
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entityELockis
Port(CLK:
instd_logic;
InNum:
std_logic_vector(0to9);
START:
instd_logic;
ENTER:
instd_logic;
SETUP:
instd_logic;
I_SETUP:
instd_logic;
OPENdoor:
outstd_logic;
ALARM:
outstd_logic;
ERROR:
outstd_logic);
endELock;
architectureBehavioralofELockis
SIGNALINPUTPASSWORD:
Bit:
='0';
SIGNALIalarm:
Bit:
='0';
SIGNALNumofIn:
INTEGER:
=0;
SIGNALCOUNT:
INTEGER:
=0;
TYPEwordISARRAY(2DOWNTO0)OFINTEGER;
Constantpass1:
INTEGER:
=2;
Constantpass2:
INTEGER:
=3;
Constantpass3:
INTEGER:
=6;
SIGNALInpass1:
INTEGER:
=0;
SIGNALInpass2:
INTEGER:
=0;
SIGNALInpass3:
INTEGER:
=0;
begin
process(CLK)
begin
ifCLK='1'andCLK'eventthen
ifSTART='1'andSTART'eventandIalarm='0'then
INPUTPASSWORD<='1';
NumofIn<=0;
endif;
ifENTER='1'andENTER'eventandIalarm='0'then
ifNumofIn=3then
ifInpass1=pass1andInpass2=pass2andInpass3=pass3then
OPENdoor<='1';
else
COUNT<=COUNT+1;
NumofIn<=0;
ERROR<='1';
ERROR<='0';
endif;
else
COUNT<=COUNT+1;
NumofIn<=0;
ERROR<='1';
ERROR<='0';
endif;
endif;
ifCOUNT=3then
ALARM<='1';
Ialarm<='1';
endif;
ifI_SETUP='1'then
ALARM<='0';
Ialarm<='0';
COUNT<=0;
endif;
ifSETUP='1'andIalarm='0'then
OPENdoor<='1';
COUNT<=0;
NumofIn<=0;
endif;
ifINPUTPASSWORD='1'then
Inpass2<=Inpass1;
Inpass3<=Inpass2;
NumofIn<=NumofIn+1;
ifInNum="1000000000"andInNum'eventthen
Inpass1<=0;
elseifInNum="0100000000"andInNum'eventthen
Inpass1<=1;
elseifInNum="0010000000"andInNum'eventthen
Inpass1<=2;
elseifInNum="0001000000"andInNum'eventthen
Inpass1<=3;
elseifInNum="0000100000"andInNum'eventthen
Inpass1<=4;
elseifInNum="0000010000"andInNum'eventthen
Inpass1<=5;
elseifInNum="0000001000"andInNum'eventthen
Inpass1<=6;
elseifInNum="0000000100"andInNum'eventthen
Inpass1<=7;
elseifInNum="0000000010"andInNum'eventthen
Inpass1<=8;
elseifInNum="0000000001"andInNum'eventthen
Inpass1<=9;
endif;
endif;
endif;
endif;
endif;
endif;
endif;
endif;
endif;
endif;
endif;
endif;
endprocess;
endBehavioral;
三、系统仿真
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 信息处理 研究生 作业