电子线路实验报告Word下载.docx
- 文档编号:16937873
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:11
- 大小:215.85KB
电子线路实验报告Word下载.docx
《电子线路实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《电子线路实验报告Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
3.掌握Verilog设计方法;
4.掌握分模块分层次的设计方法
三、实验要求:
设计一个具有时、分、秒计时的电子钟电路,按照24小时计时。
要求:
(1)准确计时,以数字的形式显示时、分、秒的时间;
(2)具有分时校正功能,校正输入脉冲频率为1Hz;
(3)具有仿广播电台整点报时的功能,即每逢59分51秒、53秒、55秒、57秒时,发出4声500Hz低音,在59分59秒时发出一声1kHz高音,它们持续的时间均为1秒,最后一声高音结束的时刻恰好为正点时刻;
(4)具有定时闹钟功能,且最长闹铃时间为1分钟。
要求可以任意的设着闹钟的时、分、秒;
闹铃信号为500Hz和1kHz的方波信号,两种频率的信号交替输出,且均持续1秒。
摄者一个停止闹钟控制键,可以停止输出闹铃的信号。
四:
数字钟主体电路的设计
数字钟系统由主体电路和扩展电路两部分组成
层次模块图
数字钟主体电路的设计:
①模24计数器的VerilogHDL设计(counter24.v)
小时计数器的计数规律为00—01—…—22—23—00…,即在设计时要求小时计数器的个位和十位均按BCD码计数。
②模60计数器的VerilogHDL设计(counter60.v)
分和秒计数器的计数规律为00—01—…—58—59—00…,可见个位计数器从0~9计数,是一个10进制计数器;
十位计数器从0~5计数,是一个六进制计数器。
可以先分别设计一个十进制计数器模块(counter10.v)和一个六进制计数器模块(counter6.v),然后将这两个模块组合起来,构成六十进制计数器。
Ⅰ模6进制计数器的VerilogHDL设计(counter6.v)
//counter6.v(BCD:
0--9)
modulecounter6(Q,ncR,EN,CP);
inputCP,ncR,EN;
outputreg[3:
0]Q;
always@(posedgeCP,negedgencR)
begin
if(~ncR)//ncR=0,计数器被异步清零
Q<
=4'
b0000;
elseif(~EN)//EN=0,暂停计数
=Q;
elseif(Q==4'
b0101)
else
=Q+1'
b1;
//计数器增1计数
end
Endmodule
功能仿真波形图
Ⅱ模10进制数字器的VerilogHDL设计(counter10.v)
//counter10.v(BCD:
modulecounter10(Q,ncR,EN,CP);
if(~ncR)//ncR=0,计数器被异步清
b1001)
Ⅲ模60计数器的VerilogHDL设计(counter60.v)
//counter60.v(BCD:
00~59)
modulecounter60(Cnt,nCR,EN,CP);
inputCP,nCR,EN;
output[7:
0]Cnt;
wire[7:
wireENP;
counter10UC0(Cnt[3:
0],nCR,EN,CP);
counter6UC1(Cnt[7:
4],nCR,ENP,CP);
assignENP=(Cnt[3:
0]==4'
h9);
endmodule
Ⅳ模24计数器的VerilogHDL设计(counter24.v)
//filename:
counter24.v(BCD:
0--23)
modulecounter24(CntH,CntL,ncR,EN,CP);
output[3:
0]CntH,CntL;
reg[3:
if(~ncR)
{CntH,CntL}<
=8'
h00;
elseif(~EN)
={CntH,CntL};
elseif((CntH>
2)||(CntL>
9)||((CntH==2)&
&
(CntL>
=3)))
elseif((CntH==2)&
(CntL<
3))
CntH<
=CntH;
CntL<
=CntL+1'
elseif(CntL==9)
=CntH+1'
endmodule
Ⅴ仿电台整点报时的电路设计
//Radio.v
moduleRadio(ALARM_Radio,Minute,Second,_1kHzIN,_500Hz);
input_1kHzIN,_500Hz;
input[7:
0]Minute,Second;
outputALARM_Radio;
regALARM_Radio;
always@(MinuteorSecond)
if(Minute==8'
h59)
case(Second)
8'
h51,
h53,
h55,
h57:
ALARM_Radio=_500Hz;
h59:
ALARM_Radio=_1kHzIN;
default:
ALARM_Radio=1'
b0;
endcase
elseALARM_Radio=1'
Ⅵ数字钟主体电路的设计
//top_clock.v
moduletop_clock(Hour,Minute,Second,_1Hz,nCR,AdjMinKey,AdjHrKey);
input_1Hz,nCR,AdjMinKey,AdjHrKey;
output[7:
0]Hour,Minute,Second;
wire[7:
supply1Vdd;
wireMinCP,HrCP;
//Hour:
Minute:
Secondcounter
counter60UT1(Second,nCR,Vdd,_1Hz);
counter60UT2(Minute,nCR,Vdd,~MinCP);
counter24UT3(Hour[7:
4],Hour[3:
0],nCR,Vdd,~HrCP);
assignMinCP=AdjMinKey?
_1Hz:
(Second==8'
h59);
assignHrCP=AdjHrKey?
_1Hz:
({Minute,Second}==16'
h5959);
Ⅶ定时闹钟模块设计
//Bell.v
moduleBell(ALARM_Clock,Set_Hr,Set_Min,Hour,Minute,Second,SetHrKey,SetMinKey,
_1kHzIN,_500Hz,1_Hz,CtrlBell);
outputALARM_Clock;
0]Set_Hr,Set_Min;
0]Set_Hr,Set_Min;
wireALARM_Clock;
input_1kHzIN,_500Hz,1_Hz;
inputSetHrKey,SetMinKey;
inputCtrlBell;
input[7:
wireHrH_EQU,HrL_EQU,MinH_EQU,MinL_EQU;
wireTime_EQU;
counter60SU1(Set_Min,Vdd,SetMinKey,1_Hz);
counter24SU2(Set_Hr[7:
4],Set_Hr[3:
0],Vdd,SetHrKey,1_Hz);
_4bitcomparatorSU4(HrH_EQU,Set_Hr[7:
4],Hour[7:
4]);
_4bitcomparatorSU5(HrL_EQU,Set_Hr[3:
0],Hour[3:
0]);
_4bitcomparatorSU6(MinH_EQU,Set_Min[7:
4],Minute7:
_4bitcomparatorSU7(MinL_EQU,Set_Min[3:
0],Minute[3:
assignTime_EQU=(HrH_EQU&
HrL_EQU&
MinH_EQU&
MinL_EQU);
assignALARM_Clock=CtrlBell?
(Time_EQU&
({(Second[0]==1’b1)&
_500Hz}||
((Second[0]==1’b0)&
_1kHz))):
1’b0;
endmodule
//_4bitcomparator.v
module_4bitcomparator(EQU,A,B);
input[3:
0]A,B;
outputEQU;
assignEQU=(A==B);
五、实验心得体会
经过这次多功能数字钟电路的设计实验后,让我进一步的熟悉EDA软件使用、掌握Verilog设计方法及分模块分层次的设计方法。
也让我知道了对Verilog语言的学习不仅是能读懂别人的程序,更重要的是能写出条理清晰的程序。
通过做多功能数字钟,我发现自己对Verilog语言还不是很熟悉,接下来的时间要加强语言的学习,多看一些语言方面的书籍。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子线路 实验 报告