版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第9章章 Verilog数字电路设计数字电路设计 9.1 加法器 级连加法器级连加法器 并行加法器并行加法器 超前进位加法器超前进位加法器 流水线加法器流水线加法器 (1)8位级连加法器 module add_jl(sum,cout,a,b,cin); input7:0 a,b; input cin; output7:0 sum; output cout; full_add1 f0(a0,b0,cin,sum0,cin1); full_add1 f1(a1,b1,cin1,sum1,cin2); full_add1 f2(a2,b2,cin2,sum2,cin3); full_add1 f3
2、(a3,b3,cin3,sum3,cin4); full_add1 f4(a4,b4,cin4,sum4,cin5); full_add1 f5(a5,b5,cin5,sum5,cin6); full_add1 f6(a6,b6,cin6,sum6,cin7); full_add1 f7(a7,b7,cin7,sum7,cout); endmodule 8位级连加法器代码 (2)并行加法器 module add_bx(cout,sum,a,b,cin); input7:0 a,b; input cin; output7:0 sum; output cout; assign cout,sum=a
3、+b+cin; endmodule 全部由逻辑门实现全部由逻辑门实现 (3) 8位超前进位加法器 module add_ahead(sum,cout,a,b,cin); input7:0 a,b; input cin; output7:0 sum; output cout; wire7:0 G,P; wire7:0 C,sum; assign G0=a0 assign P0=a0|b0; assign C0=cin; assign sum0=G0P0C0; assign G1=a1 assign P1=a1|b1; assign C1=G0|(P0 assign sum1=G1P1C1; as
4、sign G2=a2 assign P2=a2|b2; assign C2=G1|(P1 assign sum2=G2P2C2; assign G3=a3 assign P3=a3|b3; assign C3=G2|(P2 assign sum3=G3P3C3; assign G4=a4 assign P4=a4|b4; assign C4=G3|(P3 assign sum4=G2P2C2; assign G5=a5 assign P5=a5|b5; assign C5=G4|(P4 assign sum5=G5P5C5; assign G6=a6 assign P6=a6|b6; assi
5、gn C6=G5|(P5 assign sum6=G6P6C6; assign G7=a7 assign P7=a7|b7; assign C7=G6|(P6 assign sum7=G7P7C7; assign cout=G7|(P7 endmodule (4)流水线加法器 module adder8(cout,sum,a,b,cin,enable); input7:0 a,b; input cin,enable; output7:0 sum; output cout; reg cout; reg7:0 sum; reg3:0 tempa,tempb,firsts; reg firstc;
6、always (posedge enable) begin firstc,firsts=a3:0+b3:0+cin; tempa=a7:4; tempb=b7:4; end always (posedge enable) begin cout,sum7:4=tempa+tempb+firstc; sum3:0=firsts; end endmodule 9.2 乘法器 并行乘法器并行乘法器 移位相加移位相加 查找表查找表 加法树加法树 module mult(outcome,a,b); parameter size=8; inputsize:1 a,b; output2*size:1 outc
7、ome; assign outcome=a*b; endmodule (1)并行乘法器 利用利用Verilog语言的乘法操作符,可很容语言的乘法操作符,可很容 易地实现并行乘法器,并可由易地实现并行乘法器,并可由EDA综合软综合软 件自动转化为电路网表结构件自动转化为电路网表结构 n88并行乘法器的门级综合原理图并行乘法器的门级综合原理图 (2)移位相加乘法器 n移位相加乘法器将乘移位相加乘法器将乘 法变为加法实现,其法变为加法实现,其 设计思路是:乘法通设计思路是:乘法通 过逐次移位相加实现,过逐次移位相加实现, 每次判断乘数的最低每次判断乘数的最低 位,若为位,若为1则将被乘数则将被乘数
8、移位相加。移位相加。 44移位相加乘法操作示意图移位相加乘法操作示意图 8位移位相加乘法器顶层设计位移位相加乘法器顶层设计 8位移位相加乘法器时序仿真波形位移位相加乘法器时序仿真波形 (3)加法树乘法器 加法树乘法器示意图加法树乘法器示意图 (4)查找表乘法器 n查找表乘法器将乘积直接存放在存储器中,将操作查找表乘法器将乘积直接存放在存储器中,将操作 数(乘数和被乘数)作为地址访问存储器,得到的数(乘数和被乘数)作为地址访问存储器,得到的 输出数据就是乘法运算的结果。输出数据就是乘法运算的结果。 n查找表方式的乘法器速度只局限于所使用存储器的查找表方式的乘法器速度只局限于所使用存储器的 存取速
9、度。但由于查找表规模随操作数位数增加而存取速度。但由于查找表规模随操作数位数增加而 迅速增大,因此如用于实现位数宽的乘法操作,需迅速增大,因此如用于实现位数宽的乘法操作,需 要要FPGA器件具有较大的片内存储器模块。比如,器件具有较大的片内存储器模块。比如, 要实现要实现88乘法,要求存储器的地址位宽为乘法,要求存储器的地址位宽为16位,位, 字长为字长为16位,即存储器大小为位,即存储器大小为1M比特。比特。 n乘累加器的结构框图 9.3 乘累加器(MAC) 乘累加器(MAC) module MAC(out,opa,opb,clk,clr); output15:0 out;input7:0
10、opa,opb; input clk,clr; wire15:0 sum; reg15:0 out; function15:0 mult; /函数定义,函数定义,mult函数完成乘法操作函数完成乘法操作 input7:0 opa,opb; reg 15:0 result; integer i; begin result=opa0? opb : 0; for(i=1; i=7; i=i+1) begin if(opai=1) result=result+(opb(i-1);end mult=result; end endfunction assign sum=mult(opa,opb)+out;
11、 always (posedge clk or posedge clr) begin if(clr) out=0; else out=sum; end endmodule n在实际中我们经常会遇到这样的问题,在实际中我们经常会遇到这样的问题, 需要进行奇数次分频,同时又要得到占需要进行奇数次分频,同时又要得到占 空比是空比是50%的方波波形。的方波波形。 n可采用如下方法:用两个计数器,一个可采用如下方法:用两个计数器,一个 由输入时钟上升沿触发,一个由输入时由输入时钟上升沿触发,一个由输入时 钟下降沿触发,最后将两个计数器的输钟下降沿触发,最后将两个计数器的输 出相或,即可得到占空比为出相或
12、,即可得到占空比为50%的方波的方波 波形。波形。 9.4 奇数分频与小数分频 (1)奇数分频)奇数分频 占空比50%的奇数分频(模7) module count7(RESET,CLK,COUT); input CLK,RESET; output COUT; reg2:0 m,n; wire COUT; reg COUT1,COUT2; assign COUT=COUT1|COUT2; always (posedge CLK) begin if(!RESET) begin COUT1=0; m=0; end else if(RESET) begin if(m=6) begin m=0; end
13、 else m=m+1;if(m=2) COUT1=COUT1; else if(m=5) COUT1=COUT1; end end 占空比50%的奇数分频(模7) always (negedge CLK) begin if(!RESET) begin COUT2=0; n=0; end else if(RESET) begin if(n=6) begin n=0; end else n=n+1; if(n=2) COUT2=COUT2; else if(n=5) COUT2=COUT2; end end endmodule 功能仿真波形 模模7奇数分频器功能仿真波形图奇数分频器功能仿真波形图
14、 (2)小数分频 n可用下面的方法大致实现小数分频,即可用下面的方法大致实现小数分频,即 先设计两个不同分频比的整数分频器,先设计两个不同分频比的整数分频器, 然后通过控制两种分频比出现的不同次然后通过控制两种分频比出现的不同次 数来获得所需要的小数分频值,从而实数来获得所需要的小数分频值,从而实 现平均意义上的小数分频。现平均意义上的小数分频。 8.1小数分频器 module fdiv8_1(clk_in,rst,clk_out); input clk_in,rst; output clk_out; reg clk_out; reg3:0 cnt1;/cnt1计分频的次数计分频的次数 reg
15、3:0 cnt2; always(posedge clk_in or posedge rst) begin if(rst) begin cnt1=0; cnt2=0; clk_out=0; end else if(cnt19)/9次次8分频分频 begin if(cnt27) begin cnt2=cnt2+1; clk_out=0; end else begin cnt2=0; cnt1=cnt1+1; clk_out=1; end end else begin/1次9分频 if(cnt28) begin cnt2=cnt2+1; clk_out=0; end else begin cnt2
16、=0; cnt1=0; clk_out=1; end end end endmodule 8.1小数分频功能仿真波形小数分频功能仿真波形 功能仿真波形 9.5 数字跑表 n设计一个数字跑表,设计一个数字跑表, 该跑表具有复位、该跑表具有复位、 暂停、秒表计时等暂停、秒表计时等 功能。功能。 n 跑表设三个输入端,分别为时钟输入跑表设三个输入端,分别为时钟输入 (CLK)、复位()、复位(CLR)和启动)和启动/暂停暂停 (PAUSE)按键。复位信号高电平有效,可对)按键。复位信号高电平有效,可对 跑表异步清零;当启动跑表异步清零;当启动/暂停键为低电平时跑暂停键为低电平时跑 表开始计时,为高电
17、平时暂停,变低后在原来表开始计时,为高电平时暂停,变低后在原来 的数值基础上继续计数。的数值基础上继续计数。 9.6 数字频率计 n设计一个设计一个4位频率计,可测量从位频率计,可测量从1Hz到到 9,999Hz的信号频率,并将被测信号的频的信号频率,并将被测信号的频 率在率在4个数码管上显示出来。个数码管上显示出来。 n采用一个标准的基准时钟,在单位时间采用一个标准的基准时钟,在单位时间 (如(如1秒)里对被测信号的脉冲数进行计数,秒)里对被测信号的脉冲数进行计数, 即为信号的频率。即为信号的频率。 4位数字频率计的框图位数字频率计的框图 9.7 交通灯控制器 n设计一个十字路口交通灯控制器
18、,其示设计一个十字路口交通灯控制器,其示 意图如图所示,意图如图所示,A方向和方向和B方向各设红方向各设红 (R)、黄()、黄(Y)、绿()、绿(G)和左拐()和左拐(L) 四盏灯,四种灯按合理的顺序亮灭,并四盏灯,四种灯按合理的顺序亮灭,并 能将灯亮的时间以倒计时的形式显示出能将灯亮的时间以倒计时的形式显示出 来。来。 A方向 B方向 R1 Y1 G1 L1 R2 Y2 G2 L2 9.8 乐曲演奏电路 n采用FPGA器件驱动小扬声器构成一个乐 曲演奏电路,演奏的乐曲选择“梁祝” 片段,其曲谱如下。 3562155216 13 56 5 23651326516 16 57 乐曲演奏的原理 n
19、组成乐曲的每个音符的频率值(音调)及其组成乐曲的每个音符的频率值(音调)及其 持续的时间(音长)是乐曲能连续演奏所需持续的时间(音长)是乐曲能连续演奏所需 的两个基本数据,因此只要控制输出到扬声的两个基本数据,因此只要控制输出到扬声 器的激励信号的频率的高低和持续的时间,器的激励信号的频率的高低和持续的时间, 就可以使扬声器发出连续的乐曲声。就可以使扬声器发出连续的乐曲声。 乐曲演奏电路原理框图乐曲演奏电路原理框图 9.10 实用多功能数字钟 n用用Verilog语言设计一个多功能数字钟,数字钟具语言设计一个多功能数字钟,数字钟具 有下述功能有下述功能 (1)计时功能:包括时、分、秒的计时。)计时功能:包括时、分、秒的计时。 (2)定时与闹钟功能:能在设定的时间发出闹铃音。)定时与闹钟功能:能在设定的时间发出闹铃音。 (3)校时功能:对小时、分钟和秒能手动调整以校)校时功能:对小时、分钟和秒能手动调整以校 准时间。准时间。 (4)整点报时功能:每逢整点,产生)整点报时功能:每逢整点,产生“嘀嘀嘀嘀嘀嘀嘀嘀 嘟嘟”,四短一长的报时音。,四短一长的报时音。 9.1 用状态机设计一个带同步复位的十进制计数器,用状态机设计一个带同步复位的十进制计数器, 并写出测试程序。并写出测试程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福利院开展足球比赛活动方案
- 电子商务行业跨境电商与物流方案
- 力学计算题考试题库及答案
- 织金社区考试真题及答案
- 学校意识形态工作责任制落实方案
- 2025年临床执业医师《内科学》卷
- 野生动植物保护规范考核试题及答案
- 医疗机构消防安全知识岗前培训试题及答案
- 医疗机构职业病防治法培训试题及答案
- 191公司例会部门会议模板
- 2026年四川艺术职业学院单招综合素质考试题库附参考答案详解(满分必刷)
- 2026年成都市郫都区产业园区面向社会公开招聘员额制人员考试参考试题及答案解析
- 第二单元百分数(二)《解决问题》示范公开课教案【人教版数学六年级下册】
- GB/Z 41083-2021下肢矫形器的分类及通用技术条件
- 测绘地理信息从业人员保密知识培训课件
- DB32T 4117-2021 保温装饰板外墙外保温系统技术规程
- Dev-C++基础教程习题解答
- 中国大唐集团电子商城平台
- 扬剧《王宝钏》选段《探寒窑》
- 七年级体育第二学期教学工作计划
- 员工考勤签到表
评论
0/150
提交评论