数电实验指导书_第1页
数电实验指导书_第2页
数电实验指导书_第3页
数电实验指导书_第4页
数电实验指导书_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字电子技术实验指导书江苏科技大学电子信息学院目 录实验一 基本逻辑门器件功能与参数测试2实验二 组合逻辑电路的分析与设计7实验三 基于cpld/fpga的组合逻辑电路设计11实验四 基于cpld/fpga的时序逻辑电路设计18实验五 状态机初步23实验六 音乐播放电路29实验七 电子秒表设计35附录(一)常用电路的verilog实现范例37附录(二)quartusii 使用简明教程46附录(三)部分集成电路引脚排列5760实验一 基本逻辑门器件功能与参数测试一、 实验目的1. 掌握集成逻辑门基本的功能。2. 掌握数字器件主要参数的测试方法。二、 实验设备及器件1. eeec-010b实验箱2

2、. 74ls00 四二输入与非门3. 74hc00四二输入与非门4. 74ls02 四二输入或非门5. 74ls86 四二输入异或门6. 74ls125 三态缓冲器(三态门)三、 实验内容及步骤为了测试们电路的逻辑功能,门电路的输入端应接相应的电平信号(利用实验箱上的拨动开关,输入高/低电平),输出接led发光管显示输出电平状态(利用实验箱提供红、黄、绿三种色彩的led发光管,做输出显示,注意该实验箱led显示部分,高电平驱动led点亮,低电平驱动led熄灭)。1. 与非门逻辑功能测试用74ls00(四二输入与非门)进行实验,引脚图如图1-1所示,按照图1-2所示接线图1-1图1-2根据表1-

3、1,改变输入端a、b的电平状态,观测输出显示并将结果填入表中,将实验实测结果与理论结果对比给出结论。表1-1 74ls00测试表输入输出yab理论值实测值000110112. 或非门逻辑功能测试用74ls02(四二输入或非门)进行实验,引脚图如图1-3所示,按照图1-4所示接线图1-3图1-4根据表1-2,改变输入端a、b的电平状态,观测输出显示并将结果填入表中,将实验实测结果与理论结果对比给出结论。表1-2 74ls02测试表输入输出yab理论值实测值000110113. 异或门逻辑功能测试用74ls86(四二输入异或门)进行实验,引脚图如图1-5所示,按照图1-6所示接线, 图1-5图1-

4、6根据表1-3,改变输入端a、b的电平状态,观测输出显示并将结果填入表中,将实验实测结果与理论结果对比给出结论。表1-3 74ls86测试表输入输出yab理论值实测值000110114. *三态门逻辑功能测试a.用74ls125(三态门)进行功能验证实验,引脚图如图1-7所示,按照图1-8所示接线,注意将输出接到逻辑笔观测输出状态图1-7 图1-8根据表1-4,改变输入端d、en的电平状态,观测输出显示并将结果填入表中,将实验实测结果与理论结果对比给出结论。表1-4 74ls125测试表输入输出yaen理论值实测值000110115. *三态门应用按照图1-9接线,二个三态门输出端并在一起,其

5、中一个三态门输入端d接方波(约2hz),另一个输入端d接高电平“1” ,二个使能端en中一个接1,一个接0(不能同时为0),输出接逻辑笔,观测输出显示并将结果填入表中,将实验实测结果与理论结果对比给出结论。 图1-9表1-5 74ls125测试表输入输出ya10a2en1en2理论值实测值6. ttl和cmos器件电压传输特性测试用74ls00和74hc00,进行数字器件电压传输特性测试,按照图1-10所示,连接线路按照表1-6要求在输入端输入不同的电压值,观测门电路输出的对应电压值,并记录在表1-6中,完成该表格后,根据表格数据绘制输入输出电压曲线。图1-10表1-6 数字器件电压传输特性测

6、试输入电压(v)输出电压(v)74ls0074hc0000.40.81.01.21.41.61.82.02.22.42.62.83.03.23.43.63.84.04.55.0四、 预习要求1. 复习数字基本门电路的工作原理。2. 熟悉实验用数字器件的引脚排列。3. 根据提供的实验原理图,设计实验接线图。4. 画好实验测试用表格。五、 实验要求1. 画出测试电路原理图,并将实验结果填入相应表格。2. 分析根门电路功能。3. 根据要求绘制特性曲线。4. 独立完成实验,按时提交实验报告。实验二 组合逻辑电路的分析与设计一、 实验目的1. 了解74系列典型组合逻辑集成电路的功能。2. 掌握在quar

7、tus平台环境下利用原理图输入法,并完成简单组合电路的设计3. 掌握在quartus平台环境下进行电路综合、电路仿真、目标器件下载的基本步骤和方法二、 实验设备及器件1. eeec-010b实验箱2. 74ls138 三线-八线译码器3. fpga 、cyclone ep1c3t144c8三、 实验内容及步骤组合逻辑电路的分析方法:组合逻辑电路的逻辑功能特点是任意时刻的稳定输出状态,只决定于该时刻输入信号的状态,而与输入信号作用前电路原来所处的状态无关。组合逻辑电路的结构特点是逻辑电路全部由门电路组成,电路中没有记忆单元,而且由输出到各级门的输入之间也无任何反馈线。组合逻辑电路的设计也称为组合

8、逻辑电路的综合,就是根据给定的实际的逻辑命题,求出实现其逻辑功能的逻辑电路。根据逻辑电路图,分级写出函数表达式。组合逻辑电路的设计方法:步骤:给定逻辑电路输出逻辑函数式一般从输入端向输出端逐级写出各个门输出对其输入的逻辑表达式,从而写出整个逻辑电路的输出对输入变量的逻辑函数式。必要时,可进行化简,求出最简输出逻辑函数式。列真值表将输入变量的状态以自然二进制数顺序的各种取值组合代入输出逻辑函数式,求出相应的输出状态,并填入表中,即得真值表。分析逻辑功能通常通过分析真值表的特点来说明电路的逻辑功能。采用互补输入,与门,或门完成电路的电路图的设计使用原理图输入方法,在quartusii平台下,完成设

9、计输入编译,观察rtl级电路仿真,验证电路的功能和速度。下载,完成硬体测试。实验内容 组合逻辑电路设计 举例:血型合格鉴定电路人类有四种基本血型:a,b,ab,和o。要求输血者和受血者的血型必需符合下述原则:o型血可以输给任意血型的人,但o型血的人只能接受o型的血;ab型血只能输给ab血型的人,但ab型血的人能接受所有血型的血;a型血能输给a型血和ab型血的人,而a型血的人只能接受a型血和o型血;b型血能输给b型血和ab型血的人,而b型血的人只能接受b型血和o型血。以mn代表输血者血型,pq代表受血者血型,l代表配对结果,血型进行编码: 00代表o型血, 01代表a型血, 10代表b型血, 1

10、1代表ab型血,将血型编码带入真值表得出表2-1表2-1献血者 mn受血者 pq配对结果 l00001000110010100111010000101101100011111000010010101011011111000110101110011111 将真值表化简得到表达式可得表达式 根据表达式绘制出逻辑电图,并在去quartus平台上利用原理图输入法,设计电路,并进行综合和仿真,将逻辑电路图仿真波形记录到报告中1. 设计一个8421码和2421码相互转换的逻辑电路。设计一个如表2-2所示的8421码和2421码相互转换的逻辑电路。 表2-2 8421码a b c d 2421码e f g

11、h8421码a b c d 2421码e f g h0 0 0 00 0 0 00 1 0 11 0 1 1 0 0 0 10 0 0 10 1 1 01 1 0 00 0 1 00 0 1 00 1 1 11 1 0 10 0 1 10 0 1 11 0 0 01 1 1 00 1 0 00 1 0 01 0 0 11 1 1 1 根据真值表得出输出变量efgh各自与输入变量abcd之间的关系表达式,然后根据表达式绘制出逻辑电图,并在去quartus平台上利用原理图输入法,设计电路,并进行综合和仿真,将逻辑电路图仿真波形记录到报告中2. 2位二进制乘法器设计及验证 输入a1a0和b1b0两个

12、两位二进制信号,输出为二者的乘积f0f1f2f3,为四位二进制数,通过led发光管或者led数码管显示结果。具体电路形式不限。请按照设计流程设计出逻辑电图,并在quartus平台上利用原理图输入法,编辑设计电路,并进行综合和仿真,将逻辑电路图仿真波形记录到报告中以上两个实验项目,根据教师要求进行下载测试验证。四、 预习要求1. 复习数字基本门电路的工作原理。2. 熟悉实验用数字器件的引脚排列。3. 复习实验所用电路的逻辑功能和使用方法。4. 根据所指定的设计题目按正规设计步骤写出真值表、输出函数表达式、电路图5. 完成预习报告。 五、 实验要求1. 画出测试电路原理图,并将实验结果填入相应表格

13、。2. 分析根门电路功能。3. 独立完成实验,按时提交实验报告。实验三 基于cpld/fpga的组合逻辑电路设计一、 实验目的1熟悉verilog硬件描述语言,并利用verilog硬件描述语言设计组合逻辑电路。 2进一步加深学习quartusii平台完成数字系统设计的流程和方法。二、 实验设备及器件1quartusii 7.2软件平台 2fpga 、cyclone ep1c3t144c8三、 实验内容及步骤硬件描述语言verilog类似于高级程序设计语言(例如c语言),它是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑图、逻辑表达式,还可以表示更复杂的数字逻辑系统所完成的

14、逻辑功能。计算机对就、硬件描述语言的处理包括:逻辑仿真和逻辑综合。有关verilog的基本语法规则和程序结构请复习教科书“电子技术基础-数字部分(第五版)”第二章的相关内容。1.verilog语言基本描述方式对于一个数字电路采用硬件描述语言来描述,主要可采用结构描述、数据流描述和行为描述这三种方式。下面以二选一数据选择器为描述目标,分别采用上述三种方式进行描述,请大家比较和分析三种方式的特点。图4-1给出了由门电路构成的二选一数据选择器的电路图,图4-1结构描述方式:-例4-1module mux21a (out ,a,b,sel); /模块声明intput a,b,sel; /定义输入信号o

15、utput out; /定义输出信号not u1 (nsl, sel); /verilog 保留关键字and u2 (sela, a, nsl);/严格按照 接口的顺序and u3 (selb, b, sel);or u4 (out, sela, selb);endmodule-表4-1中显示出 verilog语言中已定义了常用的基本的12种门级元件,程序中可直接调用元件名称功能描述元件名称功能描述and多输入端与门nand多输入端与非门or多输入端或门nor多输入端或非门xor多输入端异或门nxor 多输入端异或非门buf多输入端缓冲器not多输入端反相器缓冲器bufif1高电平有效三态缓冲

16、器notif1高电平有效三态反相器bufif0低电平有效三态缓冲器notif0低电平有效三态反相器数据流描述方法:例4-2module mux21a (out ,a, b ,sel) ;intput a,b,sel;/定义信号方向output out; /wire nsl,sela,selb; /内部变量 相当于内部导线(线网类型) assign nsl= sel;assign sela=a & nsl;assign selb=b & sel;assign out=sela | selb;endmodule-程序中端口信号的方向有input、output和inout三种类型,分别表示输入信号、

17、输出信号和输入输出双向信号,assign赋值语句 用来对wire变量进行赋值,描述组合逻辑电路。行为描述方法-例4-3module mux21a (out ,a, b ,sel) ;intput a,b,sel;output out;reg out;/寄存器类型(只能在initial和always中赋值)always (sel or a or b)if(!sel)out=a; /是不是有点象c语言的样子?else out=b;endmodule-注意体会wire和reg之间的区别。,当信号不指定类型,系统就默认为1位wire类型。专门指定出wire类型,可能是多位或为使程序易读。wire只能被

18、assign连续赋值,reg只能在initial和always中赋值。wire使用在连续赋值语句中,而reg使用在过程赋值语句中2. verilog 基本结构语句 条件语句(if-else)条件语句必须在initial或always过程块语句引导的begin end块语句中编写。initial 初始化过程块语句,module中可以含有多个initial过程块,但是initial过程块在程序中只被执行一次,主要用于进行初始化变量等工作。always 过程语句 一般以always(敏感条件)句式出现,只要敏感条件满足,有always引导的过程块可以反复运行,程序主体一般都有always过程块构成2

19、线-4线译码器(if条件语句实现)例4-4module decode(y,a);input1:0 a;output3:0 y;reg3:0 y;always (a)beginif (a=0) y=4b1110;else if (a=1) y=4b1101;else if (a=2) y=4b1011;else y=4b0111;endendmodule 多分支选择语句 case 语法格式:case (表达式): 执行语句;; 执行语句;: 执行语句;; 执行语句;: 执行语句;; 执行语句;: 执行语句;; 执行语句;endcase 2线-4线译码器 (case多分枝选择语句实现)例4-5mo

20、dule decode(y,a);input1:0 a;output3:0 y;reg3:0 y;always (a)begincase(a)2d0:y=4b1110;2d1:y=4b1101;2d2:y=4b1011;2d3:y=4b0111;endcaseendendmodule3.常见组合逻辑电路的verilog设计方法 基本逻辑运算的实现例4-6 module gate4( in0,in1,out0 ,out1,out2,out3 );input in0 ,in1 ;output out0 ,out1,out2,out3 ; assign out0 = in0&in1;/信号赋值语句(

21、assign)assign out1 = in0|in1; /逻辑运算符 (&,|,)assign out2 = in0; assign out3 = in0in1; /两目运算符endmodule 双向端口三态总线电路的设计) module tri_2( outp,ina ,en ); input ina ,en; output outp ; assign outp= en?ina:bz; / 条件赋值语句 endmodule /相当于如果(en=1)为真/则outp=ina, /否则outp=z 数字比较器 module compare( a ,b ,c );input a ,b ;out

22、put c ; assign c=(a=b)?a:b;/相当于如果(a=b)条件为真,/c=a,否则c=b。endmodule 全加器的设计 module adder8( cout ,sum ,ain,bin,cin );input7:0 ain,bin;input cin ;output cout ; output7:0 sum ;assign cout,sum=ain+bin+cin; / 信号合并 , endmodule 8421码转换成5421码module bin2bcd (data_in ,data_out);input 3:0 data_in ; output 3:0 data_

23、out ;reg 3:0 data_out ;always (data_in )begin case (data_in 3:0) 4b0000 : data_out 3:0 = 4b0000;4b0001 : data_out 3:0 =4b0001;4b0010 : data_out 3:0 = 4b0010;4b0011 : data_out 3:0 = 4b0011;4b0100 : data_out 3:0 = 4b0100;4b0101 : data_out 3:0 = 4b1000;4b0110 : data_out 3:0 = 4b1001;4b0111 : data_out 3

24、:0 = 4b1010;4b1000 : data_out 3:0 = 4b1011;4b1001 : data_out 3:0 = 4b1100; default : data_out 3:0 = 41b0;/ endcaseendendmodule4.实验题目 用verilog语言编写实现下列器件功能的程序并进行编译、波形仿真。1. 4位全加器的设计2. bcd-7段led译码器(用if 语句或case语句设计) 3. 设计一个7位奇偶校验电路(case语句)4. 数字比较器,设计4位二进制数字比较器(if 语句) *5.设计一个四位三态门总线缓冲器*6.设计一个具有算术运算和逻辑运算的8

25、位alu(加、减、乘、与、或、异或)四、 预习要求1. 复习verilog语言的基本知识。2. 预习常见数字单元电路verilog描述方法3. 设计好实验要求的相关程序五、 实验报告1写出实验电路的源程序。2记录实验数据、仿真结果。 3总结实验体会及实验收获。实验四 基于cpld/fpga的时序逻辑电路设计一、 实验目的1学习任意进制计数器的设计、分析和测试方法 2学习数控分频器的设计、分析和测试方法3学习通用定时计数器的设计、分析和测试方法 4学习通用pwm控制器的设计、分析和测试方法二、 实验器件1quartusii 7.2软件平台 2fpga 、cyclone ep1c3t144c8三、

26、 实验内容及步骤1. 基本计数器的设计基本原理十进制计数器的设计(异步清零) 例6-1 module cnt10 (clk ,enable ,reset , full ,q) input clk ,enable ,reset ;output full ;output 3:0 q ;reg 3:0 qint; always (posedge reset or posedge clk )beginif (reset)qint=4b0000;else if(enable)begin if (qint= 9)qint=4b0000;else qint=qint+4b1; endendassign q=

27、qint; assign full=(qint= 9)?1b1:1b0;endmodule2. 数控分频器的设计原理:数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比.,数控分频器可以用计数值可并行预置的加法计数器设计完成的。例6-2module div (clk,d,fout);input clk;input7:0 d;output fout;reg fout,full;reg7:0 cnt;/=/实现可变进制计数器,产生full作为进位信号/=always (posedge clk);begin if (cnt= = 8b11111111) begin c

28、nt=d; /当计满时,cnt预置初值 full = 1; /溢出标志信号full置1 end; else begin cnt=cnt + 1;/ 否则继续作加1计数 full =0; / 溢出标志信号full置0 end end /=/ 此时的full信号的占空比为1/cnt ,需要引入d触发器,使输出的信号占空比为/ 调整为1/2,即50%- always (posedge full) begin fout=fout; end end module3. 16位定时/计数器的设计设计原理:如图6-1所示,该设计模型要求,主要前面学过的四选一多路选择器、可变分频器和16位计数器组合而成,其中采

29、用四选一多路选择器完成输入信号的选择。采用可变分频器对所选择的信号进行预分频,器分频输出信号频率分别为输入信号频率的2/4/8分频,分频后的信号进入16进制计数器进行计数图6-1 16位定时/计数器框图(4)频率和占空比可调pwm的设计原理:设计原理:采用分频器,计数器和比较器进行组合完成pwm模块的设计,根据要求设计模型要求。 (1)分频器:采用数控分频器完成频率可调。若输入信号为20mhz,要求pwm输出信号频率为1000hz 最大计数结果等于20000000/(256x1000)=78故选用计数长度为8位(256), 预置初值为255-78=177。 (2)计数器:采用8位计数器对频率可

30、调信号进行计数,脉宽分辨率为1/28即1/256。 (3)比较器:其计数结果与占空比调整字相比较,若计数器值大于调整字,输出为1,否则输出为0.改变调整字大小,改变了输出信号的脉宽. 图6-2 pwm模块结构框图实验项目用verilog语言编写实现下列器件功能的程序并进行编译、波形仿真,下载测试。1. n进制加法计数器设计(n=学号+5)2. 16位数控分频器的设计 3. *16位定时/计数器的设计4. *频率和占空比可调pwm的设计四、 预习要求1复习verilog语言的基本知识。2预习并熟计数器、分频器、数字比较器,多路选择器的verilog的描述方法3设计好实验要求的相关程序五、 实验报

31、告1写出实验电路的源程序。2记录实验数据、仿真结果。 3总结实验体会及实验收获。实验五 状态机初步 一、 实验目的 1. 对有限状态机(fsm)做初步了解。 2. 掌握利用状态机设计时序逻辑电路的方法二、 实验器件1quartusii 7.2软件平台 2fpga 、cyclone ep1c3t144c8三、 实验内容及步骤1. 状态机基本结构有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只可能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态,究竟转向哪一状态还是留在原状态不但取决于各个输入值,还取决于当前所在状态。有限状态机有

32、两种基本类型:米利(mealy)机和摩尔(moore)机:米利机的下一状态和输出取决于当前状态和当前输入;图6-1 米利型状态机框图摩尔机的下一状态取决于当前状态和当前输入,但其输出仅取决于当前状态。图6-21 摩尔型状态机框图这两类有限状态机的下一状态和输出都是由组合逻辑电路形成的。 设计状态机的要点第一,状态机要安全,是指fsm不会进入死循环,特别是不会进入非预知的状态,而且由于某些扰动进入非设计状态,也能很快的恢复到正常的状态循环中来。第二,状态机的设计要满足设计的面积和速度的要求。第三,状态机的设计要清晰易懂、易维护。2. 状态机描述方法状态机描述的主要有三种方法: 一段式:整个状态机

33、写到一个always模块里面,在该模块中既描述状态转移,又描述状态的输入和输出。 二段式:用两个always模块来描述状态机,其中一个always模块采用同步时序描述状态转移;另一个模块采用组合逻辑判断状态转移条件,描述状态转移规律以及输出。 三段式:在两个always模块描述方法基础上,增加第三个always模块。其中一个always模块采用同步时序描述状态转移,一个always采用组合逻辑判断状态转移条件,描述状态转移规律,另一个always模块描述状态输出。在学习过程中,建议大家按照标准的三段式描述方式设计状态机在此我们以序列检测器为例,研究如何使用verilog语言用状态机模型设计一个

34、能够检测输入序列中10010序列的序列检测器首先根据检测10010序列的要求,绘制出状态转换图,从而确定状态机的状态个数。图6-3 序列检测器状态转换图例:6-1 序列检测器程序/=/ 定义模块,定义状态变量 ,定义符号状态值/=module seqdet(nrst,clk,x,z); input nrst,clk; input x; output z; reg z; reg 4:0cs,ns; / cs:初态 ,ns:次态parameter 4:0 idle=5b00000 , a=5b00001 , b=5b00010 ,c=5b00100 , d=5b01000 ,e=5b10000 ;

35、 /定义符号状态值/=/*第一个always 描述状态机初始化和状态的翻转*/=always (posedge clk or negedge nrst) begin if(!nrst) cs = idle; else cs = ns; /现态到次态翻转 end/=/*第二个always 描述状态机根据当前状态和输入情况确定次态*/=always (nrst or cs or x)begin case(cs) idle: begin /初始空闲状态 if(x=1) ns=a;else ns=idle; end/-a: begin /a 状态if(x=0) ns=b; else ns=a;end/

36、-b: beginif(x=0) ns=c;elsens=a;end/- c: beginif(x=1)ns=d; else ns=idle;end/-d:beginif(x=0) ns=e; else ns=a; end/-e:beginif(x=0) ns=c; else ns=a;end/-default:ns=idle;endcaseend/=/*第三个always 描述状态机输出*/=always (posedge clk or negedge nrst)beginif (!nrst) z=1b0;else begincase(ns) idle,a,b,c,d: z=0; e: z=

37、1;default: z=0; endcase endendendmodule/=图6-4状态序列检测其仿真图实验项目用verilog语言编写实现下列器件功能的程序并进行编译、波形仿真,下载测试。1. 设计一个11011的序列检测器,.检测到11011序列后,输出高电平,序列中数值不可重叠检测。2. 设计一个11011的序列检测器,.检测到11011序列后,输出高电平,序列中数值可重叠检测。四、 预习要求1. 复习verilog语言的基本知识。2. 预习状态机的基本结构和verilog的描述方法3. 预习序列检测器的工作原理 4. 设计好实验要求的相关程序五、 实验报告1写出实验电路的源程序。

38、2记录实验数据、仿真结果。 3总结实验体会及实验收获。实验六 音乐播放电路一、 实验目的 1. 使用cpld控制蜂鸣器演奏乐曲梁祝中的一段; 2. 初步学会利用结构建模方法设计程序; 二、 实验器件1quartusii 7.2软件平台 2fpga 、cyclone ep1c3t144c8三、 实验内容及步骤1.实验背景知识 乐曲演奏的两个基本参数是每个音符的频率值(音调)及其持续的时间(音长)。因此只要控制输出到扬声器的激励信号的频率和持续时间,就可以发出连续的音乐声。 音调的控制: 频率的高低决定音调的高低。简谱中从低音1到高音1 的每个音名对应的频率如下表所示。表7-1 音名与频率对照表利

39、用可控分频器对24m信号进行可控分频,产生不同音名需要的频率,由于24m信号频率较高,可以考虑用一个固定分频器将24m基频信号进行预分频,然后在送入可控分频器,由于可控分频器的输出信号占空比很小,需要在后面接入2分频器,将信号占空比调整成占空比为50%的信号驱动扬声器,本实验要演奏的梁祝。在预分频48分频,后置2分频整形的前提下,各音阶频率及可控分频预置值如表7-2所示。 表7-2节拍的控制:本例演奏的梁祝片段,最短的音符为四分音符,如果将全音符的持续时间设为1s的话,则只需要再提供一个4hz的时钟频率即可产生四分音符的时长。 整个电路可按照图7-1框图设计 图7-1演奏电路的原理图框图 48

40、分频和4hz节拍产生电路自行设计,先给出主要的电路设计参考modulesong(clk_500khz,clk 4hz,speaker) ; /模块名称songinputclk_500khz,clk 4hz, outputspeaker; /蜂鸣器输出端reg speaker; /寄存器reg11:0 divider,origin; reg7:0 counter; reg7:0 note; /音符索引值wire carry; /=/可控分频器/=assign carry=(divider=4095); always (posedge clk_500khz) begin if(carry) div

41、ider=origin; else divider=divider+1; end /=/ 二分频整形/=always (posedge carry)begin speaker=speaker; end /=/由音符索引查可控分频器预置值表/=always (posedge clk_4hz)begincase(note) /分频比预置4b0000: origin=16384; /休止4b0001: origin=616; /低音 14b0010: origin=773; /低音 24b0011: origin=912; /低音 34b0100: origin=976; /低音 44b0101:

42、origin=1092; /低音54b0110: origin=1197; /低音64b0111: origin=1290; /低音 74b1000: origin=1372; /中音14b1001: origin=1410; /中音24b1010: origin=1480; /中音34b1011: origin=1512; /中音44b1100: origin=1570; /中音54b1101: origin=1622; /中音64b1110: origin=1668; /中音74b1111: origin=1690; /高音1endcaseend/=/乐谱查找表/=always (posedge clk_4hz) begin if(counter=63) counter=0; else counter=count

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论