数字系统设计与veriloghdl课后答案Word文件下载.docx
《数字系统设计与veriloghdl课后答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字系统设计与veriloghdl课后答案Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
(1)(104)10=(1101000)2[1101000]补=01101000
(-97)10=(-1100001)2[-1100001]补=10011111
01101000+1001111100000111
10000011+0100111111010010
[104-97]补=01101000+10011111=00000111,104-97=(00000111)2=7
(2)(-125)10=(-1111101)2
(79)10=(01001111)2
[-1111101]补=10000011[01001111]补=01001111
01111000[-125+79]补=10000011+01001111=11010010,-125+79=(-0101110)2=-46(3)(120)10=(1111000)2[01111000]补=01111000
(-67)10=(-1000011)2[-1000011]补=10111101
[120-67]补=10000011+01001111=00110101,-125+79=(00110101)2=53(4)(-87)10=(-1010111)2[-1010111]补=10101001
(12)10=(1100)2[1100]补=00001100
[-87+12]补=10101001+00001100=10110101,-125+79=(-1001011)2=-75
+1011110100110101
10101001
+0000110010110101
第2章习题解答
2.3解:
根据逻辑图可直接写出逻辑表达式:
(a)f=ab?
bc;
(b)f=abbcac
解:
设3个输入变量分别为a、b、c,输出为f,按题意,其中有奇数个为1,则输出f=1,因此可写出其逻辑表达式为f=abc?
abc?
abc。
根据逻辑表达式可绘制逻辑习题2.3图如下:
习题2.3图
2.4解:
(a)f=a?
;
(b)f=abbcac2.5解:
(1)若a+b=a+c,则b=c
不正确。
若a=1,b和c为不同值(如b=0,c=1或b=1,c=0),a+b=a+c仍然成立。
(2)若ab=bc,则a=c
若b=0,a和c为不同值,等式仍然成立。
(3)若1+a=b,则a+ab=b
若1+a=b,则b=1,此时若a=0,则a+ab=0,不可能有a+ab=b(4)若1+a=a,则a+ab=a+b
正确,因为若1+a=a,则a=1,无论b=0或b=1,均有a+ab=a+b2.6解:
(1)a+bc=(a+b)(a+c)
证明:
右边=a(a+c)+b(a+c)=a+ac+ab+bc=a+bc=左边
(2)ab+a=(+b)(a+b)
右边=aa+ab+a+b=ab+a=左边(3)(ab+c)b=abc+abc+abc证明:
左边=ab+bc
右边=ab(c+c)+bc(a+a)=ab+bc=左边(4)bc+ad=(b+a)(b+d)(a+c)(c+d)
右边=(b+ab+bd+ad)(ac+c+ad+cd)
=(b+ad)(c+ad)
=bc+acd+abd+ad=bc+ad=左边
2.7解:
(1)f=(a+b+c)(a+b+c)(a+b+c)
=(ab?
ac?
ab?
bc?
c)(a?
b?
c)=(ab?
c)=?
?
=ab?
abc
(2)f=(b+d)(a+c)(b+d)
=(ab+ad+bc+cd)(b+d)=abd+bcd+abd+d(3)f=(?
)(?
)
=(?
)=ab?
bc=ab?
bc(4)f=ab+b2.8解:
(1)f=abc?
a(b?
b)c?
(a?
a)bc=abc?
abc=∑m(1,3,5,7)
(2)f=abcd+acd+ad
=abcd+a(b+b)cd+a(b+b)(c+c)d
=abcd+abcd+abcd+abd+abd+abcd+abcd=∑m(1,3,5,7,9,11,13)
(3)f=∑m(3,6,7,8,9,10,11,12,13,14,15)(4)f=∑m(3,11,12,13,14,15)(5)f=∑m(1,2,3,4,5,6)(6)f=∑m(4,7,8,11)2.9解:
(1)f?
a?
bcd?
cd
(2)f?
bc
(3)f?
c)?
acd?
a(bc)?
bc(4)f?
d)?
cd?
(5)f?
d?
c?
ad?
abd?
bc(6)f?
c)d?
abcd?
d(7)f?
(ac?
bc)ba?
bc)(b?
c)
?
ac)?
(8)f?
b)?
(b?
ac或=ab?
ac
2.10解:
(1)f=?
ac
(2)f=1(3)f=bc?
ab
(4)f=ab?
d
(6)f=bc+b
(5)f=abcd,f=a?
(7)f=ab?
bd?
c
(8)f=ac?
bd
(2)f(a,b,c)=b?
(3)f(a,b,c)=ac?
b
2.11解:
(1)f(a,b,c)=a+b?
(4)f(a,b,c,d)=a?
(5)f(a,b,c,d)=bd?
(6)f(a,b,c,d)=bc?
【篇二:
数字系统设计与veriloghdl课程设计】
设计题目:
实用多功能数字钟
专业:
电子信息科学与技术
班级:
0313410
学号:
031341025
姓名:
杨存智
指导老师:
黄双林
摘要
本课程设计利用quartusii软件verilogvhdl语言的基本运用设计一个多功能数字钟,经分析采用模块化设计方法,分别是顶层模块、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.1clk50mto1时钟分频模块.................................................................................7
4.2adder加法器模块............................................................................................7
4.3hexcounter16进制计数器模块........................................................................7
4.4counter_time计时模块....................................................................................8
4.5alarm闹铃模块................................................................................................8
4.6sound_ddd嘀嘀嘀闹铃声模块........................................................................9
4.7sound_ddd_du嘀嘀嘀—嘟声音模块...............................................................9
4.8alarm_time闹钟时间设定模块......................................................................10
4.9bitsel将输出解码成时分秒选择模块..............................................................10
4.10switch去抖模块...........................................................................................11
4.11led译码显示模块.........................................................................................11
4.12clock顶层模块............................................................................................12
5.实验总结................................................................................................................13
5.1调试中遇到的问题及解决的方法.................................................................13
5.2实验中积累的经验..........................................................................................14
5.3心得体会........................................................................................................14
6.参考文献...............................................................................................................14
1.1课程设计的目的
通过课程设计的锻炼,要求学生掌握veriloghdl语言的一般设计方法,掌握veriloghdl语言的基本运用,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,基于实践、源于实践,实践出真知,实践检验真理,培养学生的
创新精神。
掌握现代数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(eda)的基本方法。
1.2课程设计的任务与要求
用veriloghdl语言设计一个多功能的数字钟,具有下述功能:
(1)计时功能。
包括时、分、秒的计时;
(2)定时与闹钟功能:
能在设定的时间发出闹铃音;
(3)校时功能。
对时、分和秒能手动调整以校准时间;
(4)整点报时功能;
每逢整点,产生“嘀嘀嘀嘀一嘟”四短一长的报时音。
2.课程设计思路及其原理
数字计时器要实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能,所有功能都基于计时功能。
因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为50mhz,通过分频获得所需脉冲频率1hz。
得到1hz脉冲后,要产生计时模块,必须需要加法器来进行加法,因此需要一个全加器,此实验中设计一个八位全加器来满足要求。
清零功能是通过控制计数器清零端的电平高低来实现的。
只需使清零开关按下时各计数器的清零端均可靠接入有效电平(本实验中是低电平),而清零开关断开时各清零端均接入无效电平即可。
保持功能是通过逻辑门控制秒计数器输入端的1hz脉冲实现的。
正常情况下,开关不影响脉冲输入即秒正常计数,当按下开关后,使脉冲无法进入计数端,从而实现计时保持功能。
要进行闹钟功能,是否进行闹钟模块nowmode,当选择00表示即使模块,10闹钟模式,01手动调整模式。
当选择闹铃模块之后,是否是整点报时闹铃还是闹钟闹铃,又需要设置一个选择模块alarmout,当00模式时不开启闹铃,01进行闹铃模式,10进行整点报时模块。
整点报时是本实验中的sound_ddd_du模块(详见附录中程序清单),sound_ddd_du模块与计时模块有点类似,但整点报时模块中不要分时分秒计数,可直接利用1hz的分频计数至时位进位时的数值,开启ddd_du闹铃。
闹钟报时功能。
在计时电路走到设定的时间时闹铃报时功能会被启动,通过与ddd产生电路进行逻辑组合,使得在达到闹铃时,发出ddd。
闹铃模块和校正模块中,需要选择闹铃调时alarmode还是checkmode校时模块,因此需要利用bitsel模块进行选择。
闹钟只设定时和分,基本模块alarmode与正常计时电路里的校时校分电路相同。
本实验中为节省按键,闹钟时间调节键复用正常调时的校时校分开关,为使设定闹铃与正常计时中调节时间按键互不影响,额外用一个闹钟使能键,按下该键后进入闹钟设定界面,此时校时校分开关用于调节闹钟时间,对正常计时没有影响;
恢复使能键后校分校时键用于对数字
钟进行时间调节,对设定的闹钟时间没有影响。
校分校时checkmode功能基本原理是通过逻辑门电路控制分计数器的计数脉冲,当校分校时开关断开时,计数脉冲由低位计数器提供;
当按下校分校时开通时,既可以手动触发出发式开关给进位脉冲,也可以有恒定的1hz脉冲提供恒定的进位信号,计数器在此脉冲驱动下可快速计数。
为实现可靠调时,采用防抖动开关(由d触发器实现)克服开关接通或断开过程中产生的一串脉冲式振动。
当全部功能实现之后,要完成数字钟的全部输出,需要一个led显示模块。
最后,将所有程序进行调试,在clock顶层模块中可以实现全部功能。
3.quartusii软件的应用
3.1工程建立及存盘
1.打开quartusⅡ,单击“file”菜单,选择file→newprojectwizard,对话框如下:
分别输入项目的工作路径、项目名和实体名,单击
finish。
图3.1
2.单击“file”菜单,选择new,弹出小对话框,双击“vhdlfile,即选中了文本编辑方式。
在出现的“vhdl1.vhd”文本编辑窗中键入vhdl程序,输入完毕后,选择file→saveas,即出现“saveas”对话框。
选择自己建立好的存放本文件的目录,然后在文件名框中键入文件名,按“save”按钮。
3.建立工程项目,在保存vhdl文件时会弹出是否建立项目的小窗口,点击“yes”确定。
即出现建立工程项目的导航窗口,点击“next”,最后在出现的屏幕中分别键入新项目的工作路径、项目名和实体名。
注意,原理图输入设计方法中,存盘的原理图文件名可以是任意的,但vhdl程序文本存盘的文件名必须与文件的实体名一致,输入后,单击“finish”按钮。
3.2工程项目的编译
单击工具条上的编译符号开始编译,并随着进度不断变化屏幕,编译成功,完成后的屏幕如图3.2所示:
【篇三:
数字系统设计与verilog_hdl_王金明_第四版__eda期末知识点复习(宁波工程学院电科版)】
1)更适合用于描述规模大、功能复杂的数字系统
2)语言标准化、便于设计的复用、交流、保存和修改
3)设计与工艺的无关性,宽范围的描述能力,便于组织大规模、模块化的设计
2、verilog模块的结构
模块声明:
包括模块名字、模块输入、输出端口列表,结束关键字为endmodule端口定义:
格式为:
input:
端口名1,端口名2?
端口名n;
output:
inout:
3、标识符是用户在编程时给verilog对象起的名字,模块、端口和实例的名字都是标识符。
标识符可以是任意一组字母、数字以及符号“$”和“_”的组合,但标识符的第一个字符必须是字母(a-z,a-z)或者是下划线“_”,标识符最长可包含1023个字符,此外,标识符区分大小写。
4、整数写法:
+/-size位宽’base进制value数字
1、在较长的数之间可用下划线分开
2、当数字不说明位宽时,默认值为32位
3、x或(z)在二进制中代表1位x(或z),在八进制中代表3位,在16进制中代表4位
4、如果没有定义一个整数的位宽,其宽度为相应值中定义的位数。
5、如果定义的位宽比实际的位数长,通常在左边填0补位,但如果最左边一位为x或z,就相应的用x或z左边补位。
6、“?
”是高阻态z的另一种表示符号,在数字的表示中,字符“?
”和z是完全等价的,可相互代替。
7、整数可以带符号,并且正负号应写在最左边,负数通常表示为二进制补码的形式。
8、当位宽与进制缺省时表示的是10进制数
9、在位宽和‘之间,以及进制和数值之间允许出现空格,但’和进制之间以及数值之间是不能出现空格的。
要求掌握整数正确的书写方式。
5、向量:
宽度大于1位的变量;
标量:
宽度为1位的变量。
定义2个8位reg型矢量:
reg[7:
0]ra,rb;
6、运算符
(1)注意:
逻辑运算符,例如逻辑与、逻辑或||、逻辑非!
,运算结果是1位的。
如果操作数不止1位的话,则应将操作数作为一