数字系统设计与veriloghdl课后答案.docx

上传人:b****6 文档编号:7044933 上传时间:2023-01-16 格式:DOCX 页数:14 大小:23.48KB
下载 相关 举报
数字系统设计与veriloghdl课后答案.docx_第1页
第1页 / 共14页
数字系统设计与veriloghdl课后答案.docx_第2页
第2页 / 共14页
数字系统设计与veriloghdl课后答案.docx_第3页
第3页 / 共14页
数字系统设计与veriloghdl课后答案.docx_第4页
第4页 / 共14页
数字系统设计与veriloghdl课后答案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数字系统设计与veriloghdl课后答案.docx

《数字系统设计与veriloghdl课后答案.docx》由会员分享,可在线阅读,更多相关《数字系统设计与veriloghdl课后答案.docx(14页珍藏版)》请在冰豆网上搜索。

数字系统设计与veriloghdl课后答案.docx

数字系统设计与veriloghdl课后答案

数字系统设计与veriloghdl课后答案

【篇一:

数字逻辑与数字系统设计习题参考答案】

>第1章习题解答

1.3

(1)86

(2)219

(3)106.25

(4)0.6875(4)0.101

1.4

(1)101111

(2)1001000

(3)100001l.11

1.5

(1)(117)10=(165)8=(1110101)2=(75)16

(2)(3452)10=(6574)8=(110101111100)2=(d7c)16

(3)(23768.6875)10=(56330.54)8=(101110011011000.1011)2=(5cd8.b)16(4)(0.625)10=(0.5)8=(0.101)2=(0.a)161.6

(1)(117)8=(1001111)2=(79)10

(2)(7456)8=(111100101110)2=(3886)10

(3)(23765.64)8=(10011111110101.1101)2=(10229.8125)10(4)(0.746)8=(0.11111)2=(0.96875)101.7

(1)(9a)16=(10011010)2=(154)10

(2)(3cf6)16=(11110011110110)2=(15606)10

(3)(7ffe.6)16=(111111111111110.011)2=(32766.375)10(4)(0.c4)16=(0.110001)2=(0.765625)101-8

(1)(125)10=(000100100101)8421bcd

(2)(7342)10=(0111001101000010)8421bcd

(3)(2018.49)10=(0010000000011000.01001001)8421bcd(4)(0.785)10=(0.011110000101)8421bcd

1.9

(1)(106)10=(1101010)2原码=反码=补码=01101010

(2)(-98)10=(-1100010)2原码=11100010

反码=10011101补码=11100011

(3)(-123)10=(-1111011)2原码=11111011

反码=10000101补码=11111011

(4)(-0.8125)10=(-0.1101)2原码=1.1101000

反码=1.0010111补码=1.0011000

1.10

(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?

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?

ac?

bc?

c)(a?

b?

c)=(ab?

ab?

c)(a?

b?

c)=?

?

?

?

=ab?

bc?

ac?

abc

(2)f=(b+d)(a+c)(b+d)

=(ab+ad+bc+cd)(b+d)=abd+bcd+abd+d(3)f=(?

)(?

?

=(?

?

)(?

)=ab?

ac?

abc?

bc=ab?

ac?

bc(4)f=ab+b2.8解:

(1)f=abc?

a(b?

b)c?

(a?

a)bc=abc?

abc?

abc?

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?

b?

bcd?

a?

b?

cd

(2)f?

ab?

bc?

ac?

ab?

bc?

abc?

abc?

ab?

bc

(3)f?

a(b?

c)?

bc?

acd?

a(bc)?

bc?

acd?

a?

bc?

acd?

a?

bc(4)f?

(a?

c)(a?

d)?

a?

ac?

cd?

a?

cd

(5)f?

d?

d?

b?

c?

ad?

b?

d?

?

b?

c?

ad?

b?

d?

abd?

acd?

bc?

d?

bc(6)f?

abc?

(a?

b?

c)d?

abc?

abcd?

abc?

d(7)f?

(ac?

bc)ba?

c?

(ac?

bc)(b?

a?

c)

?

(ac?

bc)(b?

ac?

ac)?

abc?

ac?

bc?

abc?

ac?

bc

?

?

(8)f?

(a?

b)?

(b?

c)?

ab?

ab?

bc?

bc

?

ab?

bc?

ac或=ab?

bc?

ac

2.10解:

(1)f=?

ac

(2)f=1(3)f=bc?

ab

(4)f=ab?

c?

d

(6)f=bc+b

d

(5)f=abcd,f=a?

b?

c?

d

(7)f=ab?

bd?

c

(8)f=ac?

bd

(2)f(a,b,c)=b?

c

(3)f(a,b,c)=ac?

ac?

b

2.11解:

(1)f(a,b,c)=a+b?

c

(4)f(a,b,c,d)=a?

bd

(5)f(a,b,c,d)=bd?

ac?

cd

(6)f(a,b,c,d)=bc?

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:

端口名1,端口名2?

端口名n;

inout:

端口名1,端口名2?

端口名n;

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位的话,则应将操作数作为一

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1