搜档网
当前位置:搜档网 › 数字电路时钟设计verilog语言编写--

数字电路时钟设计verilog语言编写--

数字电路时钟设计verilog语言编写--
数字电路时钟设计verilog语言编写--

电子线路设计与测试

实验报告

一、实验名称

多功能数字钟设计

二、实验目的

1.掌握可编程逻辑器件的应用开发技术

——设计输入、编译、仿真和器件编程;

2.熟悉一种EDA软件使用;

3.掌握Verilog设计方法;

4.掌握分模块分层次的设计方法;

5.用Verilog完成一个多功能数字钟设计。

三、设计内容及要求

1.基本功能

具有“秒”、“分”、“时”计时功能,小时按24小时制计时。

具有校时功能,能对“分”和“小时”进行调整。

2.扩展功能

仿广播电台正点报时。在59分51秒、53秒、55秒、57秒发出低音512Hz 信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。

定时控制,其时间为23时58分。

3.选做内容

任意时刻闹钟(闹钟时间可设置)。

自动报整点时数。

四.系统框图与说明

数字钟框图

1.数字钟电路系统由主体电路和扩展电路两大部分所组成。

2.秒计数器计满60后向分计数器进位,分计数器计满60后向小时计数器进位,小时计数器按照“24进制”规律计数。

3.计数器的输出经译码器送显示器。

五.设计步骤

1.列写多功能数字钟设计--层次结构图

2.拟定数字钟的组成框图,在Max+Plus II软件中,使用Verilog语言输入,采用分层次分模块的方法设计电路;

3.设计各单元电路并进行仿真;

4.对数字钟的整体逻辑电路图,选择器件,分配引脚,进行逻辑综合;

5.下载到Cyclone II FPGA实验平台上,实际测试数字钟的逻辑功能。

六.Verilog代码

//24进制时钟, 具有计时、校时、仿广播电台正点报时、固定时刻定时,任意时刻闹钟等功能

module

clock_main(LED_Hour,LED_Minute,LED_Second,Alarm,CP_1KHz,Jsh_Min_key,Jsh_Hour_ke y,Set_Hour_key,Set_Min_key,Show,Ctrl_Bell);

input CP_1KHz;//定义输入时钟

input Jsh_Min_key,Jsh_Hour_key;//定义校时按键

input Set_Hour_key,Set_Min_key;//定义闹钟定时按键

input Show; //定义显示模式按键

input Ctrl_Bell;//定义闹钟铃声控制

output [7:0]LED_Hour,LED_Minute,LED_Second;//定义输出变量

wire [7:0]LED_Hour,LED_Minute,LED_Second;//定义输出变量类型

wire [7:0]Hour,Minute,Second;

wire [7:0]Set_Hour_Out,Set_Min_Out;

wire Out_1Hz,Out_500Hz;//定义分频模块输出变量类型

reg Alarm_Ring,Alarm_Clock_1KHz;//定义仿广播电台报时和固定时刻定时铃声

output Alarm;//蜂鸣器输入

supply1Vdd;

wire Alarm_Clock;//任意时刻闹钟闹铃

wire MinL_EN,MinH_EN,Hour_EN;//定义中间变量类型

//分频

fre_dividerFD0(Out_1Hz,Out_500Hz,Vdd,Vdd,CP_1KHz);

//正常计时

counter10 U1(.Q(Second[3:0]),.nCR(Vdd),.EN(Vdd),.CP(Out_1Hz));

counter6

U2(.Q(Second[7:4]),.nCR(Vdd),.EN(Second[3:0]==4'h9),.CP(Out_1Hz));

assignMinL_EN=Jsh_Min_key?Vdd:(Second==8'h59);

assign

MinH_EN=(Jsh_Min_key&&(Minute[3:0]==4'h9))||(Minute[3:0]==4'h9)&&(Second==8'h59 );

counter10 U3(.Q(Minute[3:0]),.nCR(Vdd),.EN(MinL_EN),.CP(Out_1Hz));

counter6 U4(.Q(Minute[7:4]),.nCR(Vdd),.EN(MinH_EN),.CP(Out_1Hz));

assign Hour_EN=Jsh_Hour_key?Vdd:((Minute==8'h59)&&(Second==8'h59));

counter24 U5(Hour[7:4],Hour[3:0],Vdd,Hour_EN,Out_1Hz);

//仿广播电台正点报时

baoshi BS1(Alarm_Ring,Minute,Second,Out_500Hz,CP_1KHz);//在59分51秒、53秒、55秒、57秒发出低音512Hz信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点

//固定时刻定时

always @(Hour or Minute or Second)//所定时刻为23时58分,蜂鸣器发出低音1KHz 信号,持续5秒钟

if (Hour==8'h23&Minute==8'h58)

case (Second)

8'h00,

8'h01,

8'h02,

8'h03,

8'h04:Alarm_Clock_1KHz=CP_1KHz;

default Alarm_Clock_1KHz=1'b0;

endcase

else Alarm_Clock_1KHz=1'b0;

//任意时刻闹钟

setclock

SC1(Alarm_Clock,Set_Hour_Out,Set_Min_Out,Hour,Minute,Second,Set_Hour_key,Set_Mi n_key,CP_1KHz,Out_500Hz,Out_1Hz,Ctrl_Bell);

//响铃

assign Alarm=Alarm_Ring||Alarm_Clock_1KHz||Alarm_Clock;

//数码管显示选择

Choice_2to1 CU1(LED_Hour,Show,Set_Hour_Out,Hour);//Show为高电平时,显示闹钟所定时刻;为低电平时,显示正常计时

Choice_2to1 CU2(LED_Minute,Show,Set_Min_Out,Minute);

Choice_2to1 CU3(LED_Second,Show,8'h00,Second);

Endmodule

//**********分频模块,获得500Hz低频1Hz时钟源**********

modulefre_divider(Out_1Hz,Out_500Hz,nCR,EN,In_1KHz);

input nCR,EN,In_1KHz;

output Out_1Hz,Out_500Hz;

supply1Vdd;

wire Out_1Hz,Out_500Hz;

wire [11:0]Qn;//定义中间变量类型

wire EN1,EN2;

counter10 DU1(.Q(Qn[3:0]),.nCR(nCR),.EN(EN),.CP(In_1KHz));

counter10 DU2(.Q(Qn[7:4]),.nCR(nCR),.EN(EN1),.CP(In_1KHz));

counter10 DU3(.Q(Qn[11:8]),.nCR(nCR),.EN(EN2),.CP(In_1KHz));

assign EN1= (Qn[3:0]==4'd9);

assign EN2= (Qn[7:4]==4'd9)&(Qn[3:0]==4'd9);

assign Out_500Hz=Qn[0];

assign Out_1Hz=Qn[11];

endmodule

//****************模10计数器******************

module counter10(Q,nCO,nCR,EN,CP);

inputCP,nCR,EN;

output[3:0]Q;

outputnCO;

reg[3:0]Q;

always@(posedge CP or negedgenCR)

begin

if(~nCR)Q<=4'd0;

else if(EN)

begin

if(Q>=4'd9)

Q<= 4'd0;

else Q<=Q+1'd1;

end

else Q<=Q;

end

assignnCO=~(Q[3]&&Q[0]);

endmodule

//****************模6计数器****************** module counter6(Q,nCO,nCR,EN,CP);

inputCP,nCR,EN;

output[3:0]Q;

outputnCO;

reg[3:0]Q;

always@(posedge CP or negedgenCR)

begin

if(~nCR)Q<=4'd0;

else if(EN)

begin

if(Q==4'd5)

Q<= 4'd0;

else Q<=Q+1'd1;

end

else Q<=Q;

end

assignnCO=~(Q[2]&&Q[0]);

endmodule

//**********模60计数,用来构成分、秒计数********** module counter60(Qnt,CO,nCR,EN,CP);

inputCP,nCR,EN;

output [7:0]Qnt;

output CO;

wire [7:0]Qnt;

counter10 U0(Qnt[3:0],nCO_10,nCR,EN,CP);

counter6 U1(Qnt[7:4],nCO_6,nCR,Qnt[3:0]==4'd9,CP);

assign CO=~((Qnt[7:4]==4'd5)&&(Qnt[3:0]==4'd9));

endmodule

//********************模24计数器********************

module counter24(CntH,CntL,nCR,EN,CP);

inputCP,nCR,EN;

output[3:0]CntH,CntL;

reg [3:0]CntH,CntL;

always @(posedge CP or negedgenCR)

begin

if(~nCR) {CntH,CntL}<=8'h00;

else if(~EN) {CntH,CntL}<={CntH,CntL};

else if((CntH>2)||(CntL>9)||((CntH==2)&&(CntL>=3)))

{CntH,CntL}<=8'h00;

else if((CntH==2)&&(CntL<3))

beginCntH<= CntH;CntL<= CntL+1'b1;end

else if(CntL==9)

beginCntH<= CntH+1'b1;CntL <= 4'b0000;end

else

beginCntH<= CntH;CntL<= CntL+1'b1;end

end

endmodule

//**********仿广播电台正点报时**********

modulebaoshi(Alarm_Ring,Minute,Second,_500Hz,_1KHz);

input [7:0] Minute,Second;//定义输入变量

input _500Hz,_1KHz;

output Alarm_Ring;//定义输出变量

regAlarm_Ring;//定义输出变量类型

always@(Minute or Second)

if(Minute==8'h59)

case (Second)

8'h51,

8'h53,

8'h55,

8'h57:Alarm_Ring=_500Hz; //在59分51秒、53秒、55秒、57秒发出低音512Hz 信号

8'h59:Alarm_Ring=_1KHz; //在59分59秒时发出一次高音1024Hz信号default:Alarm_Ring=1'b0;

endcase

else

Alarm_Ring=1'b0;

Endmodule

//******************任意时刻闹钟******************

module

setclock(Alarm_Clock,Set_Hour_Out,Set_Min_Out,Hour,Minute,Second,Set_Hour_key,S et_Min_key,_1KHz,_500Hz,_1Hz,Ctrl_Bell);

inputSet_Hour_key,Set_Min_key;

inputCtrl_Bell;

input [7:0]Hour,Minute,Second;

outputAlarm_Clock;

output [7:0]Set_Hour_Out,Set_Min_Out;

wire [7:0]Set_Hour_Out,Set_Min_Out;

wireAlarm_Clock;

input _1KHz,_500Hz,_1Hz;

supply1Vdd;

wireHourH_EQU,HourL_EQU,MinH_EQU,MinL_EQU;

wireTime_EQU;

counter60 SU1(.Qnt(Set_Min_Out),.nCR(Vdd),.EN(Set_Min_key),.CP(_1Hz)); //实现闹钟分钟的设定

counter24 SU2(Set_Hour_Out[7:4],Set_Hour_Out[3:0],Vdd,Set_Hour_key,_1Hz); //实现闹钟小时的设定

comparator SU4(HourH_EQU,Set_Hour_Out[7:4],Hour[7:4]);

comparator SU5(HourL_EQU,Set_Hour_Out[3:0],Hour[3:0]);

comparator SU6(MinH_EQU,Set_Min_Out[7:4],Minute[7:4]);

comparator SU7(MinL_EQU,Set_Min_Out[3:0],Minute[3:0]);

assignTime_EQU=(HourH_EQU&&HourL_EQU&&MinH_EQU&&MinL_EQU);

assign Alarm_Clock=Ctrl_Bell?(Time_EQU&&

(((Second[0]==1'b1)&&_500Hz)||((Second[0]==1'b0)&&_1KHz))):1'b0;

endmodule

//****************比较器******************

module comparator(EQU,A,B); //比较器,如果A和B相等时,则输出为1

input [3:0] A,B;

output EQU;

assign EQU=(A==B);

endmodule

//****************二选一选择器****************

module Choice_2to1(Qnt,SEL,X,Y);

input [7:0] X,Y;

input SEL;

output [7:0] Qnt;

assignQnt=SEL?X:Y;

endmodule

七.各工作模块仿真波形

1.基本功能—正常计时和校时

2.仿广播电台正点报时

3.固定时刻定时

4.任意时刻定时及闹钟设定

八.实验总结:

1.对于本次能够成功地使用Verilog设计并仿真出多功能数字钟,感到非常满意。

2.本次多功能数字钟设计实验,从刚开始对Verilog语言非常陌生,到最后接近熟练地掌握Verilog语言的程度,期间花费不少时间和精力,同时也收获了很多,学会了使用Verilog

语言编程仿真电路实验,掌握了可编程逻辑器件的应用开发技术,熟悉了一种EDA软件使用,掌握了Verilog设计方法,即分模块分层次的设计方法。

3.本次多功能数字钟设计实验,对于Verilog语言的学习与应用,可以说是一次很好的锻炼机会,在设计过程中,汲取了诸多经验教训,深刻体会到一个小小的错误可能会给整个程序所带来的严重后果。所以,在以后的学习及程序设计当中,我们一定要倍加小心,在程序出现不正常运行的情况下要耐心调试,尽量做到精益求精。

4.由于时间有限,还有一部分选做内容没能够完成,即数字钟的自动报整点时数功能。但本次设计实验已使我对Verilog语言产生了浓厚的兴趣,在以后的学习生活中会主动去了解更多有关这方面的知识及其在实践中的应用。

数字系统设计与verilog HDL课程设计

数字系统设计与verilog HDL课程设计 设计题目:实用多功能数字钟 专业:电子信息科学与技术 班级:0313410 学号:031341025 姓名:杨存智 指导老师:黄双林

摘要 本课程设计利用QuartusII软件Verilog VHDL语言的基本运用设计一个多功能数字钟,经分析采用模块化设计方法,分别是顶层模块、alarm、alarm_time、counter_time、clk50mto1、led、switch、bitel、adder、sound_ddd、sound_ddd_du模块,再进行试验设计和软件仿真调试,分别实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能。 单个模块调试达到预期目标,再将整体模块进行试验设计和软件仿真调试,已完全达到分块模式设计功能,并达到设计目标要求。 关键字:多功能数字钟、Verilog、模块、调试、仿真、功能

目录 1.课程设计的目的及任务............................................................. 错误!未定义书签。 1.1 课程设计的目的 (3) 1.2 课程设计的任务与要求 (4) 2.课程设计思路及其原理 (4) 3.QuartusII软件的应用 (5) 3.1工程建立及存盘 (5) 3.2工程项目的编译 (5) 3.3时序仿真 (6) 4.分模块设计、调试、仿真与结果分析 (7) 4.1 clk50mto1时钟分频模块 (7) 4.2 adder加法器模块 (7) 4.3 hexcounter16 进制计数器模块 (7) 4.4 counter_time 计时模块 (8) 4.5 alarm闹铃模块 (8) 4.6 sound_ddd嘀嘀嘀闹铃声模块 (9) 4.7 sound_ddd_du嘀嘀嘀—嘟声音模块 (9) 4.8 alarm_time闹钟时间设定模块 (10) 4.9 bitsel将输出解码成时分秒选择模块 (10) 4.10 switch去抖模块 (11) 4.11 led译码显示模块 (11) 4.12 clock顶层模块 (12) 5.实验总结 (13) 5.1调试中遇到的问题及解决的方法 (13) 5.2实验中积累的经验 (14) 5.3心得体会 (14) 6.参考文献 (14) 1.1 课程设计的目的 通过课程设计的锻炼,要求学生掌握V erilog HDL语言的一般设计方法,掌握VerilogHDL语言的基本运用,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,基于实践、源于实践,实践出真知,实践检验真理,培养学生的

数字电路课程设计题目选编

数字电路课程设计题目选编 1、基于DC4011水箱水位自动控制器的设计与实现 简介及要求:水箱水位自动控制器,电路采用CD4011 四与非门作为处理芯片。要求能够实现如下功能:水 箱中的水位低于预定的水位时,自动启动水泵抽水; 而当水箱中的水位达到预定的高水位时,使水泵停止 抽水,始终保持水箱中有一定的水,既不会干,也不 会溢,非常的实用而且方便。 2、基于CD4011声控、光控延时开关的设计与实现 简介及要求:要求电路以CD4011作为中心元件,结合外围 电路,实现以下功能:在白天或光线较亮时,节电开关呈关闭 状态,灯不亮;夜间或光线较暗时,节电开关呈预备工作状态, 当有人经过该开关附近时,脚步声、说话声、拍手声等都能开 启节电开关。灯亮后经过40秒左右的延时节电开关自动关闭, 灯灭。 3、基于CD4011红外感应开关的设计与实现 在一些公共场所里,诸如自动干手机、自动取票机等,只要人手在机器前面一晃,机器便被启动,延时一段时间后自动关闭,使用起来非常方便。要求用CD4011设计有此功能的红外线感应开关。 4、基于CD4011红外线对射报警器的设计与实现 设计一款利用红 外线进行布防的防盗 报警系统,利用多谐振 荡器作为红外线发射 器的驱动电路,驱动红 外发射管,向布防区内 发射红外线,接收端利用专用的红外线接收器件对发射的 红外线信号进行接收,经放大电路进行信号放大及整形, 以CD4011作为逻辑处理器,控制报警电路及复位电路,电

路中设有报警信号锁定功能,即使现场的入侵人员走开,报警电路也将一直报警,直到人为解除后方能取消报警。 5、基于CD4069无线音乐门铃的设计与实现 音乐门铃已为人们所熟知,在一些住宅楼中都 装有音乐门铃,当有客人来访时,只要按下门铃按 钮,就会发出“叮咚”的声音或是播放一首乐曲, 然而在一些已装修好的室内,若是装上有线门铃, 由于必须布线,从而破坏装修,让人感到非常麻烦。 采用CD4069设计一款无线音乐门铃,发射按键与接 收机间采用了无线方式传输信息。 6、基于时基电路555“叮咚”门铃的设计与实现 用NE555集成电路设计、制作一个“叮咚”门铃,使该装置能够 发出音色比较动听的“叮咚”声。 7、基于CD4511数显八路抢答器的设计与实现 CD4511是一块含BCD-7段锁存、译码、驱动电路于一体的集成 电路。设计一款基于CD4511八路抢答器,该电路包括抢答,编 码,优先,锁存,数显和复位。 8、基于NE555+CD4017流水彩灯的设计与实现 以NE555和CD4017为核心,设计制作一个流水彩灯,使之通 过调节电位器旋钮,可调整彩灯的流动速度。 9、基于用CD4067、CD4013、 NE555跑马灯的设计与实 现

数字电路时钟设计verilog语言编写--

电子线路设计与测试 实验报告 一、实验名称 多功能数字钟设计 二、实验目的 1.掌握可编程逻辑器件的应用开发技术 ——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法;

4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计。 三、设计内容及要求 1.基本功能 具有“秒”、“分”、“时”计时功能,小时按24小时制计时。 具有校时功能,能对“分”和“小时”进行调整。 2.扩展功能 仿广播电台正点报时。在59分51秒、53秒、55秒、57秒发出低音512Hz 信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。 定时控制,其时间为23时58分。 3.选做内容 任意时刻闹钟(闹钟时间可设置)。 自动报整点时数。 四.系统框图与说明 数字钟框图

1.数字钟电路系统由主体电路和扩展电路两大部分所组成。 2.秒计数器计满60后向分计数器进位,分计数器计满60后向小时计数器进位,小时计数器按照“24进制”规律计数。 3.计数器的输出经译码器送显示器。 五.设计步骤 1.列写多功能数字钟设计--层次结构图 2.拟定数字钟的组成框图,在Max+Plus II软件中,使用Verilog语言输入,采用分层次分模块的方法设计电路; 3.设计各单元电路并进行仿真; 4.对数字钟的整体逻辑电路图,选择器件,分配引脚,进行逻辑综合; 5.下载到Cyclone II FPGA实验平台上,实际测试数字钟的逻辑功能。

六.Verilog代码 //24进制时钟, 具有计时、校时、仿广播电台正点报时、固定时刻定时,任意时刻闹钟等功能 module clock_main(LED_Hour,LED_Minute,LED_Second,Alarm,CP_1KHz,Jsh_Min_key,Jsh_Hour_ke y,Set_Hour_key,Set_Min_key,Show,Ctrl_Bell); input CP_1KHz;//定义输入时钟 input Jsh_Min_key,Jsh_Hour_key;//定义校时按键 input Set_Hour_key,Set_Min_key;//定义闹钟定时按键 input Show; //定义显示模式按键 input Ctrl_Bell;//定义闹钟铃声控制 output [7:0]LED_Hour,LED_Minute,LED_Second;//定义输出变量 wire [7:0]LED_Hour,LED_Minute,LED_Second;//定义输出变量类型 wire [7:0]Hour,Minute,Second; wire [7:0]Set_Hour_Out,Set_Min_Out; wire Out_1Hz,Out_500Hz;//定义分频模块输出变量类型 reg Alarm_Ring,Alarm_Clock_1KHz;//定义仿广播电台报时和固定时刻定时铃声 output Alarm;//蜂鸣器输入 supply1Vdd; wire Alarm_Clock;//任意时刻闹钟闹铃 wire MinL_EN,MinH_EN,Hour_EN;//定义中间变量类型 //分频 fre_dividerFD0(Out_1Hz,Out_500Hz,Vdd,Vdd,CP_1KHz); //正常计时 counter10 U1(.Q(Second[3:0]),.nCR(Vdd),.EN(Vdd),.CP(Out_1Hz)); counter6 U2(.Q(Second[7:4]),.nCR(Vdd),.EN(Second[3:0]==4'h9),.CP(Out_1Hz)); assignMinL_EN=Jsh_Min_key?Vdd:(Second==8'h59); assign MinH_EN=(Jsh_Min_key&&(Minute[3:0]==4'h9))||(Minute[3:0]==4'h9)&&(Second==8'h59 ); counter10 U3(.Q(Minute[3:0]),.nCR(Vdd),.EN(MinL_EN),.CP(Out_1Hz)); counter6 U4(.Q(Minute[7:4]),.nCR(Vdd),.EN(MinH_EN),.CP(Out_1Hz)); assign Hour_EN=Jsh_Hour_key?Vdd:((Minute==8'h59)&&(Second==8'h59)); counter24 U5(Hour[7:4],Hour[3:0],Vdd,Hour_EN,Out_1Hz); //仿广播电台正点报时 baoshi BS1(Alarm_Ring,Minute,Second,Out_500Hz,CP_1KHz);//在59分51秒、53秒、55秒、57秒发出低音512Hz信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点 //固定时刻定时

#用Verilog语言编写的多功能数字钟

2009—2010学年第二学期 《数字电子技术课程设计》报告 专业班级:电气-08-1 姓名:曹操 学号:08051127 设计日期:2010年8月23日~27日 一.设计题目 多功能数字钟电路设计 二.设计任务及要求 多功能数字钟应该具有的功能有:显示时—分—秒、整点报时、小时和分钟可调等基本功能。整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23时。 在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD 码)显示个位,对于小时因为他的范围是从0~23,所以可以用一个2位的二进制码显示十位,用一个4位的二进制码(BCD码)显示个位。

实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz 时钟信号,但是扫描需要一个比较高频率的信号,因此为了得到准确的1Hz 信号,必须对输入的系统时钟50Mhz进行分频。 对于整点报时功能,本实验设计的是当进行正点的倒计时5秒时,让LED来闪烁进行整点报时的提示。 调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。另外用S8按键作为系统时钟复位,复位后全部显示00—00—00。 管脚分配如下表: 端口名使用模块信号对应FPGA管脚说明 S1 按键开关S1 R16 调整小时 S2 按键开关S2 P14 调整分钟 RST 按键开关S8 M15 复位 LED LED模块D1 L14 整点倒计时 LEDAG0 数码管模块A段N4 时间显示 LEDAG1 数码管模块B段G4 LEDAG2 数码管模块C段H4 LEDAG3 数码管模块D段L5 LEDAG4 数码管模块E段L4 LEDAG5 数码管模块F段K4 LEDAG6 数码管模块G段K5 SEL0 数码管选择位1 M4 8个数码管

Verilog HDL数字时钟课程设计

课程设计报告 课程设计名称:EDA课程设计课程名称:数字时钟 二级学院:信息工程学院 专业:通信工程 班级:12通信1班 学号:1200304126 姓名:@#$% 成绩: 指导老师:方振汉 年月日

目录 第一部分 EDA技术的仿真 (3) 1奇偶校验器 (3) 1.1奇偶校验器的基本要求 (3) 1.2奇偶校验器的原理 (3) 1.3奇偶校验器的源代码及其仿真波形 (3) 28选1数据选择器 (4) 2.18选1数据选择器的基本要求 (4) 2.28选1数据选择器的原理 (4) 2.38选1数据选择器的源代码及其仿真波形 (5) 34位数值比较器 (6) 3.14位数值比较器的基本要求 (6) 3.24位数值比较器的原理 (6) 3.34位数值比较器的源代码及其仿真波形 (7) 第二部分 EDA技术的综合设计与仿真(数字时钟) (8) 1概述 (8) 2数字时钟的基本要求 (9) 3数字时钟的设计思路 (9) 3.1数字时钟的理论原理 (9) 3.2数字时钟的原理框图 (10) 4模块各功能的设计 (10) 4.1分频模块 (10) 4.2计数模块(分秒/小时) (11) 4.3数码管及显示模块 (13) 5系统仿真设计及波形图........................... 错误!未定义书签。5 5.1芯片引脚图.................................... 错误!未定义书签。5 5.2数字时钟仿真及验证结果 (16) 5.3数字时钟完整主程序 (17) 6课程设计小结 (23) 7心得与体会 (23) 参考文献 (24)

数字电路设计实例

数字电路综合设计案例 8.1 十字路口交通管理器 一、要求 设计一个十字路口交通管理器,该管理器自动控制十字路口两组红、黄、绿三色交通灯,指挥各种车辆和行人安全通过。 二、技术指标 1、交通管理器应能有效操纵路口两组红、黄、绿灯,使两条交叉道路上的车辆交替通行,每次通行时间按需要和实际情况设定。 2、在某条道路上有老人、孩子或者残疾人需要横穿马路时,他们可以举旗示意, 执勤人员按动路口设置的开关,交通管理器接受信号,在路口的通行方向发生转换时,响应上述请求信号,让人们横穿马路,这条道上的车辆禁止通行,即管理这条道路的红灯亮。 3、横穿马路的请求结束后,管理器使道口交通恢复交替通行的正常状态。 三、设计原理和过程: 本课题采用自上而下的方法进行设计。 1.确定交通管理器逻辑功能 ⑴、十字路口每条道路各有一组红、黄、绿灯,用以指挥车辆和行人有序地通行。其中红灯亮表示该条道路禁止通行;黄灯亮表示停车;绿灯亮表示通行。因此,十字路口车辆运行情况有以下几种可能: ①甲道通行,乙道禁止通行; ②甲道停车线以外的车辆禁止通行(必须停车),乙道仍然禁止通行,以便让甲道停车线以内的车辆安全通过; ③甲道禁止通行,乙道通行; ④甲道仍然不通行,乙道停车线以外的车辆必须停车,停车线以内的车辆顺利通行。 ⑵、每条道路的通车时间(也可看作禁止通行时间)为30秒~2分钟,可视需要和实际情况调整,而每条道路的停车时间即黄灯亮的时间为5秒~10秒,且也可调整。 ⑶、响应老人、孩子或残疾人特殊请求信号时,必须在一次通行—禁止情况完毕后, 阻止要求横穿的那条马路上车辆的通行。换句话说,使另一条道路增加若干通行时间。 设S1和S2分别为请求横穿甲道和乙道的手控开关,那么,响应S1或S2的时间必定在甲道通乙道禁止或甲道禁止乙道通两种情况结束时,且不必过黄灯的转换。这种规定是为了简化设计。 由上述逻辑功能,画出交通管理器的示意图如图8-1所示,它的简单逻辑流程图如图8-2所示。示意图中甲道的红、黄、绿灯分别用R、Y、G表示,而乙道的红、黄、绿灯分别用r、y、g表示。简单逻辑流程图中设定通行(禁止)时间为60秒,停车时间为10秒。

基于VerilogHDL设计的数字时钟

深圳大学考试答题纸 (以论文、报告等形式考核专用) 二○18 ~二○19 学年度第一学期 课程编 1602080001 课程名称 号 学 姓名李思豪专业年级电子科学与技术16级1班号 题目:基于Verilog HDL设计的数字时钟 摘要:本文利用Verilog HDL语言自顶向下的设计方法设计多功能数字钟,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过Altera QuartusⅡ 6.0和cyclnoe II EP2C35F672C6完成综合、仿真。此程序通过下载到FPGA芯片后,可应用于实际的数字钟显示中 关键词:Verilog HDL;硬件描述语言;FPGA

目录 一、实验任务 (3) 实验目的 (3) 实验要求 (3) 二、设计思路 (3) 三、实验结果 (10) 四、总结与收获 (14)

一、实验任务 实验目的 1.深入了解基于quartus ii工具的复杂时序逻辑电路的设计。 2.理解并熟练利用EDA工具进行综合设计。 3.熟练掌握芯片烧录的流程及步骤。 4.掌握Verilog HDL 语言的语法规范及时序电路描述方法。 实验要求 设计一个带秒表功能的24 小时数字钟,它包括以下几个组成部分: ①显示屏,由6 个七段数码管组成,用于显示当前时间(时:分,秒)或设置的秒表时间; ②复位键复位所有显示和计数 ③设置键,用于确定新的时间设置,三个消抖按键分别用于时分秒的设置 ④秒表键,用于切换成秒表功能 基本要求 (1) 计时功能:这是本计时器设计的基本功能,每隔一秒计时一次,并在显示屏上显示当前时间。 (2) 秒表功能:设置时间,进行倒计时功能 (3) 设置新的计时器时间:按下设置键后,用户能通过时分秒三个消抖按键对时间进行设置。 二、设计思路 1、总原理框图:

基于verilog数字秒表的设计实现--生产实习报告

生产实习报告 班级:通信13-2班 姓名:闫振宇 学号:1306030222 成绩: 电子与信息工程学院 信息与通信工程系

基于verilog 数字秒表的设计实现 1. 概述 硬件描述语言HDL ( HardwareDescription Langyage) 是一种用形式化方法来描述数字电路和系统的语言。数字电路系统的设计这里用这种语言可以从上层倒下层逐层描述自设计思想用一系列分层的模块来表示极其复杂的数字系统,然后用EDA 工具逐层验证,把其中需要为具体物理电路的模块组合由自动综合工具转换到门级电路网表。Verilog HDL 是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。使用VERILOG 进行系统设计时采用的是从顶至下的设计,自顶向下的设计是从系统机开始巴西同划分为若干个基本单元,然后再把每个单元划分为下一层的基本单元,这样下去直到可以直接用EDA 元件库中的基本元件来实现为止。 2. 设计目的及要求 a. 有源晶振频率:50MHZ ; b. 测试计时范围:00' 00” 00 ~ 59 ',59显”示9的9 最长时间为59 分59 秒; c. 数字秒表的计时精度是10ms; d. 显示工作方式:六位BCD 七段数码管显示读数,两个按钮开关(一个按钮使秒表复位,另一个按钮控制秒表的启动/暂停)。 3. 设计原理秒表的逻辑结构较简单,它主要由四进制计数器、十六进制计数器、分频器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ 计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。 秒表有共有6个输出显示,其中6个显示输出数据,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有 6 个计数器与之相对应; 6 个计数器的输出全都为BCD 码输出,这样便与同显示译码器连接。 利用一块芯片完成除时钟源,按键和显示器之外的所有数字电路功能。所有数字逻辑功能都在CPLD 器件上用Verilog 语言实现。这样设计具有体积小,设计周期短,调试方 便,故障率地和修改升级容易等特点。 本设计采用依次采用以下设计方法: 1)按键输入缓存,键盘消抖设计;

多功能数字钟电路的设计与制作

多功能数字钟电路的设计与制作 一、设计任务与要求 设计和制作一个多功能数字钟,要求能准确计时并以数字形式显示时、分、秒的时间,能校正时间,准点报时。 二、方案设计与论证 1.数字钟设计原理 数字电子钟一般由振荡器、译码器、显示器等几部分电路组成,这些电路都是数字电路中应用最广的基本电路。振荡器产生的1Hz的方波,作为秒信号。秒信号送入计数器进行计数,并把累计的结果以“时”、“分”、“秒”的数字显示出来。“秒”的计数、显示由两级计数器和译码器组成的六十进制计数电路实现;“分”的计数、显示电路与“秒”的相同;“时”的计数、显示由两级计数器和译码器组成的二十四进制计数电路实现。所有计时结果由七段数码管显示器显示。用4个与非门构成调时电路,通过改变方波的频率,进行调时。最后用与非门和发光二极管构成整点显示部分。

2.总体结构框图如下: 图14 总体框图 三、单元电路设计与参数计算 1.脉冲产生电路 图15 晶振振荡器原理图 图16 555定时器脉冲产生电路原理图 振荡器可由晶振组成(如图15),也可以由555定时器组成。图16是由555定时器构成的1HZ 的自激振荡器,其原理是: 第一暂态2、6端电位为Vcc 3 1 ,则输出为高电平,三极管不导通,电容C 充电,此 时2、6端电位上升。当上升至大于Vcc 3 2 时,输出为低电平,三极管导通,电容C 放电, 11 21 C 1 R C 2 R O

此时2、6端电位下降,下降至Vcc 3 1 时,输出高电平,以此循环。根据公式C R R f )2(43.121+≈ 得,此时频率为0.991。 图17 555定时器波形关系 图18 555定时器产生1Hz 方波原理图 2.时间计数电路 图19 74LS161引脚图 74LS161功能表 v V 2 3 V 1 3 v U 1 74L S 161D Q A 14Q B 13Q C 12Q D 11R C O 15A 3B 4C 5D 6 E N P 7E N T 10 ~L O A D 9~C L R 1 C L K 2

多功能数字钟设计Verilog语言编写

多功能数字钟设计 院系:电光学院 班级:*** 学号: *** 姓名: *** 指导老师:*** 时间:2010.4.20.

摘要:利用QuartusII软件设计一个数字钟,利用模块化的程序设计思想,核心 模块均采用Verilog语言编写(译码显示模块采用原理图设计),软件仿真调试编译成功后,再下载到SmartSOPC实验系统中。经过硬件测试,查找软件设计缺陷,并进一步完善软件,最终设计得到较为满意的多功能数字钟。 关键词:QuartusII; 多功能数字钟; 模块化; Verilog; 可编程; Abstract:Using the QuartusII software design a digital bell with the blocking method.The design takes theory drawing instead of Verilog language.After emluating and debuging successfully,translate and edit the code.Then,download the result to the programmable SmartSOPC system and test it in hardware.Realizing the soul of designing hardware by software. Keywords:QuartusII; digital bell; blocking method; VHDL; programmable; hardware 目录 设计内容简介 (3) 设计要求说明 (3) 方案论证(整体电路设计原理) (3) 各子模块设计理 (5) 分频模块: (5) 计数模块: (7) --校准模块程序实现: (8) --秒计数模块程序实现: (9) --分计数模块程序实现: (10) --时计数模块程序实现: (10) 整点报时模块: (12) 闹钟设定模块: (13) --闹钟调节模块程序实现: (14) --输出信号选择模块程序实现: (14) 彩铃模块: (15) 译码显示模块: (18) 万年历模块: (19) --日计数模块程序设计: (20) --月计数模块程序设计: (23) --年计数模块程序设计: (23) --万年历波形仿真结果: (25) 结论: (26) 实验感想: (26) 附图: (27)

eda,verilog数字钟设计报告

数字钟 一、任务解析 用Verilog硬件描述语言设计数字钟,实现: 1、具有时、分、秒计数显示功能,以二十四小时循环计时。 2、具有调节小时,分钟的功能,调整时对应的数字闪烁。 3、具有整点报时及闹铃时间可调的功能。 4、数字钟具有四种模式:正常显示、时间调整、闹铃时间调整、秒表。 二、方案论证 没有闹铃功能 三、重难点解析 选择模式:module beii(clr,selin_key,beii_out); input clr,selin_key; output [1:0]beii_out; wire [1:0]beii_out; reg [1:0]selout_key; always@(negedge clr or posedge selin_key) begin if(!clr) selout_key=0; else begin if(selout_key==2) selout_key=0; else selout_key=selout_key+1;end end assign beii_out=selout_key; endmodule

头文件中: module clk_top(clr,clk,upkey,downkey,sel,a,b,c,d,e,f,g,p,clr_key,selin_key); clr:清零clk:50M时钟 upkey:向上调downkey:向下调 clr_key:恢复初始状态selin_key:模式选择 四、硬件资源分配 60进制module mycnt60(clr,clk,upkey,downkey,selout,q,c); input clk,clr,upkey,downkey;//upkey为加按键 input [1:0] selout; output[7:0] q;//60进制输出 output c;//进位溢出位 reg c; reg[7:0] q; wire new_clk1,ckb,ckc,ckd,cko; assign new_clk1=clk|((!selout[0]&selout[1])&(upkey|downkey)); LCELL AA(new_clk1,ckb);//信号延迟 LCELL BB(ckb,ckc); LCELL CC(ckc,ckd); LCELL DD(ckd,cko); initial c=0; always @(posedge cko or negedge clr )begin if(!clr) q=8'h00; else begin if(selout==2) begin if(upkey)begin if(q==8'h59) q=8'h00; else if(q==8'h?9) q=q+4'h7; else q=q+1; end else if(downkey)begin if(q==8'h00) q=8'h59; else if(q==8'h?0) q=q-4'h7; else q=q-1; end

前端设计&数字电路

要注意规范 工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件 还是硬件),不按照规范走几乎是不可实现的。逻辑设计也是这样:如果不按规范做的话,过一个月后调试时发现有错,回头再看自己写的代码,估计很多信号功能都忘了, 更不要说检错了;如果一个项目做了一半一个人走了,接班的估计得从头开始设计;如 果需要在原来的版本基础上增加新功能,很可能也得从头来过,很难做到设计的可重用性。 在逻辑方面,我觉得比较重要的规范有这些: 1.设计必须文档化。要将设计思路,详细实现等写入文档,然后经过严格评审通过 后才能进行下一步的工作。这样做乍看起来很花时间,但是从整个项目过程来看,绝对 要比一上来就写代码要节约时间,且这种做法可以使项目处于可控、可实现的状态。 2.代码规范。 a.设计要参数化。比如一开始的设计时钟周期是30ns,复位周期是5个时钟周期,我 们可以这么写: parameter CLK_PERIOD = 30; parameter RST_MUL_TIME = 5; parameter RST_TIME = RST_MUL_TIME * CLK_PERIOD; ... rst_n = 1'b0; # RST_TIME rst_n = 1'b1; ... # CLK_PERIOD/2 clk <= ~clk; 如果在另一个设计中的时钟是40ns,复位周期不变,我们只需对CLK_PERIOD进行重新例化就行了,从而使得代码更加易于重用。 b.信号命名要规范化。 1) 信号名一律小写,参数用大写。 2) 对于低电平有效的信号结尾要用_n标记,如rst_n。 3) 端口信号排列要统一,一个信号只占一行,最好按输入输出及从哪个模块来到哪 个模块去的关系排列,这样在后期仿真验证找错时后方便很多。如:

数字电路设计数字电路应用设计

数字电路设计数字电路应用设计 数字电路应用设计。本书从实用设计方法出发。 通信及相关专业师生的参考用书。也可供电路设计及研发人员参 考阅读。 书名,数字电路应用设计。作者,关静。ISBN,9787030257796。定价,32.00 元。出版社,科学出版社。出版时间,xx-11-1。装帧,平装。开本,16开。 基本信息。数字电路应用设计作者:关静编著出版社:科学 出版社出版时间: xx-11-1开本: 16开I S B N: 9787030257796定价:¥32.00。 内容简介。本书从实用设计方法出发。结合实际应用。 也可供电路设计及研发人员参考阅读。 目录。第1章数字电路实用设计基础1.1 数字集成电路的分类。 特点及注意事项1.2 数字逻辑电路的测试方法1.3 基本逻辑门 电路的测试方法1.4 典型集成逻辑门电路部件逻辑门等等。逻辑门 可以组合使用实现更为复杂的逻辑运算。1.5 组合逻辑电路的分析与设计逻辑运算又称布尔运算布尔用数学方法研究逻辑问题。成功地 建立了逻辑演算。他用等式表示判断。把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释。 只依赖于符号的组合规律。这一逻辑理论人们常称它为布尔代数。20世纪30年代。逻辑代数在电路系统上获得应用。随后。由于电子技术与计算机的发展。出现各种复杂的大系统。它们的变换规律也遵

守布尔所揭示的规律。逻辑运算通常用来测试真假值。最常见到的逻辑运算就是循环的处理。用来判断是否该离开循环或继续执行循环内的指令。1.6 电路的安装与调试1.7 TTL集电极开路门与三态输出门的应用集电极开路门。即OC门。 是一种能够实现线逻辑的电路。OC与非门电路的特点是将原TTL 与非门电路中的VT3管集电极开路。并取消集成电极电阻。所以。使用OC门时。为保证电路正常工作。必须外接一只RL电阻与电源VCC 相连。称为上拉电阻。如图2所示。1.8 数字IC的接口电路1.9 数字电路的抗干扰问题第2章电子计数器。秒表的制作2.1 电子计数器的制作2.1.1 集成计数器74LS1602.1.2 数码管显示单元2.1.3 计数器电路图与实际制作2.1.4 调整和使用方法2.2 秒表的制作2.2.1 钟表的工作2.2.2 秒表的制作及调整2.2.3 使用BCD计数器和十进制计数器的方法第3章电子储钱罐的设计与制作3.1 设计思路3.2 光电传感器与锁存器部分电路3.2.1 光电传感器光电传感器是采用光电元件作为检测元件的传感器。 它首先把被测量的变化转换成光信号的变化。然后借助光电元件进一步将光信号转换成电信号。光电传感器一般由光源。光学通路和光电元件三部分组成。光电检测方法具有精度高。反应快。非接触等优点。而且可测参数多。传感器的结构简单。形式灵活多样。因此,光电式传感器在检测和控制中应用非常广泛。光电传感器是各种光电检测系统中实现光电转换的关键元件。它是把光信号转变成为电信号的器件。光电式传感器是以光电器件作为转换元件的传感器。

数字钟-的设计与实现-数字电路的样板

课程设计任务书 学生姓名: XXX 专业班级: 指导教师:工作单位: 题目: 多功能数字钟电路设计 初始条件:74LS390,74LS48,数码显示器BS202各6片,74LS00 3片,74LS04,74LS08各 1片,电阻若干,电容,开关各2个,蜂鸣器1个,导线若干。 要求完成的主要任务: 用中、小规模集成电路设计一台能显示日、时、分秒的数字电子钟,要求如下: 1.由晶振电路产生1HZ标准秒信号。 2.秒、分为00-59六十进制计数器。 3.时为00-23二十四进制计数器。 4.可手动校正:能分别进行秒、分、时的校正。只要将开关置于手动位置。可分别对秒、分、时进行连续脉冲输入调整。 5.整点报时。整点报时电路要求在每个整点前鸣叫五次低音(500HZ),整点时再鸣叫一次高音(1000HZ)。 时间安排: 第20周理论设计、实验室安装调试,地点:鉴主15楼通信实验室一 指导教师签名:年月日 系主任(或责任教师)签名:年月日

多功能数字钟电路设计 摘要 数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。目前,数字钟的功能越来越强,并且有多种专门的大规模集成电路可供选择。数字钟适用于自动打铃、自动广播,也适用于节电、节水及自动控制多路电器设备。它是由数子钟电路、定时电路、放大执行电路、电源电路组成。为了简化电路结构,数字钟电路与定时电路之间的连接采用直接译码技术。具有电路结构简单、动作可靠、使用寿命长、更改设定时间容易、制造成本低等优点。 从有利于学习的角度考虑,这里主要介绍以中小规模集成电路设计数字钟的方法。

基于FPGA的VerilogHDL数字钟设计-

基于FPGA的Verilog HDL数字钟设计 专业班级姓名学号 一、实验目的 1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法; 4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计; 6.学会FPGA的仿真。 二、实验要求 ?功能要求: 利用实验板设计实现一个能显示时分秒的多功能电子钟,基本功能: 1)准确计时,以数字形式显示时、分、秒,可通过按键选择当前显示时间围模式; 2)计时时间围 00:00:00-23:59:59 3)可实现校正时间功能; 4)可通过实现时钟复位功能:00:00:00 扩展功能: 5)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用板上LED或外接电路实 现。 6)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---用板上LED或 外接 7)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---用板上LED或外接 8)手动输入校时; 9)手动输入定时闹钟; 10)万年历; 11)其他扩展功能; ?设计步骤与要求: 1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。 2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电 路系统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。 3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快 得出仿真结果)。 4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit文件。 5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。

《数字电路制作与测试》—课程标准(含章节知识点)

《数字电子技术》课程标准

《数字电路制作与测试》课程标准 一、适用对象 二、适用专业 三、课程性质 本课程是专业的专业知识课程。 本课程是依据专业人才培养目标和相关职业岗位(群)的能力要求而设置的,对本专业所面向的岗位群所需要的知识、技能、和素质目标的达成起支撑作用。在课程设置上,前导课程有《电工基础》( M01F011 )、《模拟电路设计与制作》(M01F27E10)、,后续课程有《C语言程序设计》(M01F68D10)、《单片机应用技术》( M01F66E10)。 四、课程目标 总体目标 通过本课程的学习,学生可掌握逻辑代数、门电路、组合逻辑电路、触发器、时序逻辑电路、脉冲波形的产生与整形、可编程逻辑电路基本知识和应用技术、A/D转换与D/A转换等数字逻辑电路相关知识,熟悉常用仪器仪表使用、完成数字电路与功能电路测试、学会简单数字电路设计方法。本课程注重培养学生创新意识、分析和解决实际问题的能力以及工程实践能力、职业素质能力。 1、知识目标 1)熟悉逻辑代数基本知识。 2)掌握组合逻辑电路分析方法和设计方法。 3)掌握触发器的逻辑功能和应用方法。 4)掌握时序逻辑电路的分析方法,了解时序逻辑电路的设计方法。 5)了解可编程逻辑器件基本知识和应用技术。 6)掌握AD/DA变换的基本原理和应用。

7)了解脉冲波形的产生和变化。 2、技能目标 1)会用各种表示方法描述数字电路逻辑功能。 2)学会常用数字集成电路的正确使用方法。 3)会分析较复杂数字逻辑电路的逻辑功能。 4)能根据工作要求,完成简单数字逻辑电路的设计。 5)能通过对数字集成电路芯片资料的阅读,了解数字集成电路的逻辑功能和使用方法。 6)能分析和排除数字逻辑电路中出现的故障。 7)能熟练掌握数字电路中常用仪器仪表的使用 8) 能画出所设计的数字逻辑电路的电原理图,能列出所设计电路的元器件清单,会写所设计电路的测试说明。参与实验室的开放性实验,尊重他人劳动,遵守实验室管理规定,养成良好的职业习惯。 3、素质养成目标 教学中通过对数字集成电路的测试及应用,培养学生实践动手能力,提高了学生分析问题和解决问题的能力,养成了学生实践验证的好习惯。通过分组完成项目任务,培养学生团队协作精神,锻炼学生沟通交流、自我学习的能力。通过实验室实施5S管理理念,从而培养学生形成规范的操作习惯、养成良好的职业行为习惯。 五、参考学时90 学分 6 六、设计思路 《数字电路制作与测试》课程的建设和开发是以高职教育的职业能力培养为目标,将理论与实践紧密结合在一起的。 1.该课程以专业知识为主线,以具体工作任务为载体,培养具有灵活应用常用数字集成电路实现逻辑功能的能力为基本目标,围绕工作任务完成的需要选择和组织课程内容,突出工作任务与知识的联系,让学生在职业实践活动的基础上掌握知识,增强课程内容与职业岗位能力要求的相关性,提高学生的就业能力。 2.学习项目选取的基本依据是该门课程涉及的工作领域和工作任务范围,但

闪光灯逻辑控制电路的设计与制作

课题四闪光灯逻辑控制电路的设计与制作 闪光灯逻辑控制电路是电子游戏、广告制作、舞台演出中最常用的逻辑控制电路,和前三个课题不同的是电路采用纯数字电路器件来实现。数字电路能用的器件有通用的中,小规模集成电路和专用的数字集成电路两种,器件的选择余地更大,设计方案较多。数字电路的设计思路与模拟电路有着根本的差别,而且只要电路逻辑设计正确,调试的工作量较小。希望通过本课题的设计与制作,使初学者能熟悉数字电路的一般设计方法。 1.设计内容和要求 设计并制作一个闪光灯控制逻辑电路,设计要求: ①红(R、黄(A、绿(G三种颜色的闪光灯在时钟信号作用下按表3— 5规定的逻辑顺序转换。表中“1”表示灯亮,“0”表示灯灭。要求电路能自启动。 ②状态转换时间间隔为0.5s,设计并制作一个CP脉冲源。 表3-5闪光灯转换顺序表 2. 设计方案的选择

(1逻辑分析 三个闪光灯R、A、G作为三个输出变量,灯亮为“1”,灯灭为“0”,在时钟C P的作用下,共8个状态,其状态转换图如图3-4-1所示。 图3-4-1状态转换图 由状态转换图可知,本电路可以自启动。 设计思路:能否用一个八进制计数器,再设计一个状态转换电路,将计数器的8个输出状态依次转化为灯光控制电路的规定状态,状态转换的真值表如表3-6所示。 表3-6状态转换真值表

由真值表可得输出变量的函数表达式为R=01 2012012Q Q Q Q Q Q Q Q Q ++A=012012012Q Q Q Q Q Q Q Q Q ++ G=012012012Q Q Q Q Q Q Q Q Q ++ (2 设计方案的比较与选择 由上分析,,本课题总的设计方案是先设计一个八进制同步加法计数器为闪光灯逻辑控制电路提供输入变量,再设计一个状态转换电路保证闪光灯按规定顺序工作。八进制计数器根据器件来源,可以选用三片小规模集成触发器如D 触发器,JK 触发器等,也可采用中规模集成计数器如74LS160,74LS161等构成,转换电路的设计方案更多,可采用门电路,也可采用数据选择器,3线8线译码器,甚至只读存储器ROM 来实现。不同的器件对逻辑函数 的处理方式不同。本课题首先确定八进制计数器由十进制同步加法计数器74LS 160来实现,只是转换电路选用不同的器件,介绍三种设计方案供选择比较。 3.单元电路的设计 (1八进制计数器的设计

实现数字时钟设计的Verilog代码

下面给出实现数字时钟设计的Verilog代码 module top(inc_hour,sub_hour,inc_min,sub_min,rst,clk,sel,q); input inc_hour,sub_hour,inc_min,sub_min; input rst,clk; output reg [2:0] sel; output reg [6:0] q; reg [9:0] scan; reg [2:0] scan_clk; reg div_clk; reg [19:0] counter_clk; reg [3:0] sec_counter1,sec_counter2; reg [3:0] min_counter1,min_counter2; reg [3:0] hour_counter1,hour_counter2; always @ (negedge rst or posedge clk) begin if(~rst) begin counter_clk<=20'h00000; div_clk<=1'b0; end else begin if(counter_clk==20'h7a11f) begin counter_clk<=20'h00000; div_clk<=~div_clk; end else counter_clk<=counter_clk+1; end end always @(negedge rst or posedge div_clk) begin if(~rst) begin sec_counter1<=4'h0; sec_counter2<=4'h0; min_counter1<=4'h0; min_counter2<=4'h0; hour_counter1<=4'h0; hour_counter2<=4'h0; end

相关主题