




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.设计名称:38译码器带使能端的主要功能:实现38译码功能,并且在使能段处于低电平是输出为00000000设计框图:设计代码:module decoder3_8(a,b,ena);input 2:0 a;input ena;output 7:0 b;reg 7:0 b;always (ena,a)if(!ena)begin b=8b00000000;endelse begincase(a)3b000: b=8b00000001;3b001: b=8b00000010;3b010: b=8b00000100;3b011: b=8b00001000;3b100: b=8b00010000;3b1
2、01: b=8b00100000;3b110: b=8b01000000;3b111: b=8b10000000;default: b=8b00000000;endcaseendendmodule仿真代码:timescale 1ns/1nsmodule tb; reg 2:0 a; reg ena; wire 7:0 b; initial begin a = 3b000; ena = 1b0; #50; ena = 1b1; #50; a=3b001; #50; a=3b010; #50; a=3b011; #50; a=3b100; #50; a=3b101; #50; a=3b110; #
3、50; a=3b111; #50; $ stop; end decoder3_8 udecoder3_8( .a(a), .ena(ena), .b(b) );endmodule仿真结果:辅助说明:当ena为低电平时,无论a为何值,总是输出00000000,当ena为高电平时,输出即随a的数值变化而变化,当a为001时,b的值变为00000010;当a为010时,b的值变为00000100,这与设计时的功能是一致的。_2.设计名称:83编码器带使能端的和优先级主要功能:实现83编码功能,并且在使能段处于低电平是输出为000,同时最高位的优先级最高设计框图:设计代码:module undecod
4、er8_3(a,b,ena);input 7:0 a;input ena;output 3:0 b;reg 3:0 b;always (ena,a)if(!ena)begin b=3b000;endelse if(a7) b=3b111;elseif(a6) b=3b110;elseif(a5) b=3b101;elseif(a4) b=3b100;elseif(a3) b=3b011;elseif(a2) b=3b010;elseif(a1) b=3b001;elseif(a0) b=3b000;else b=3b000;endmodule仿真代码:module tb; reg 7:0 a;
5、 reg ena; wire 2:0 b; initial begin a = 8b10000000; ena = 1b0; #50; ena = 1b1; #50; a=8b01000000; #50; a=8b00100000; #50; a=8b00010000; #50; a=8b00001000; #50; a=8b00000010; #50; a=8b00000001; #50; a=8b10100000; #50; $stop; end undecoder8_3 unit1_undecoder8_3( .a(a), .ena(ena), .b(b) );endmodule仿真结果
6、:辅助说明:当ena为低电平时,无论a为何值,总是输出000,当ena为高电平时,输出即随a的数值变化而变化,当a为01000000时,b为110,当a为00100000是,b为101以此类推,同时最后一个波形为,当a为10100000时,b为111,体现了优先译码的功能,此结果和当初设计的功能一致的。_3.设计名称:设计一个1:1的3分频器主要功能:实现3分频,同时高低电平比为1:1设计框图:设计代码:这个设计可以利用模三计数器分别在时钟的上升和下降沿设计一个高低电平为1:2的3分频,然后将两个波形相或即能得到结果。代码一:module Devider2_1( /inputs clk, rs
7、t_n, /outputs opt1, opt2, opt); input clk; input rst_n; output opt; output opt1; output opt2; reg opt1; reg 1:0 temp1; reg opt2; reg 1:0 temp2; always(posedge clk) begin if(!rst_n) begin temp1 = 2d0; opt1 = 1b0; end else if(temp1=1) begin opt1 =1b1; temp1 = temp1 + 2d1; end else if(temp1=2d2)begin o
8、pt1 = 1b0; temp1 = 2d0;end elsebegin temp1 = temp1+2d1;endend always(negedge clk) begin if(!rst_n) begin temp2 = 2d0; opt2 = 1b0; end else if(temp2=1) begin opt2 =1b1; temp2 = temp2 + 2d1; end else if(temp2=2d2)begin opt2 = 1b0; temp2 = 2d0; end else begin temp2 = temp2+2d1; end end assign opt = opt
9、1 | opt2; endmodule同时也可以用同样的方法设计一个在上升和下降沿高低电平2:1的3分频器,将两个波形相与即可。代码二:module Devider2_1( /inputs clk, rst_n, /outputs opt1, opt2, opt); input clk; input rst_n; output opt; output opt1; output opt2; reg opt1; reg opt2; reg 1:0 temp1; reg 1:0 temp2; always(posedge clk) begin if(!rst_n) begin temp1 = 2d0
10、; opt1 = 1b0;end /reset else if(temp1=2d0) begin opt1=1b1; temp1 = temp1 + 2d1;end else if(temp1=2d1)begin opt1 =1b1; temp1 = temp1 + 2d1;end else if(temp1=2d2)begin opt1 = 1b0; temp1 = 2d0;endend always(negedge clk) begin if(!rst_n)begin temp2 = 2d0; opt2 = 1b0;end /reset else if(temp2=2d0) begin o
11、pt2=1b1; temp2 = temp2 + 2d1;end else if(temp2=2d1) begin opt2 =1b1; temp2 = temp2 + 2d1;end else if(temp2=2d2)begin opt2 = 1b0; temp2 3) Q=1;else Q=0; endendmodule仿真代码:timescale 1ns/1nsmodule q; reg rst; reg 6:0vote; wire Q; initial begin rst=0; vote=7b111111;#50; rst=1;#50; rst=0;#50; vote=7b01101
12、01;#50; vote=7b0100101;#50; vote=7b0111101;#50; vote=7b1111001;#50; vote=7b0100001;#50; vote=7b0000001;#50; $stop;endv v_unit(.vote(vote),.rst(rst),.Q(Q);endmodule仿真结果:辅助说明:第一个表决为0111111,有6人同意,于是显示通过,Q为高电平,第二个单位是,rst复位信号显示为1,此时对表决器复位,于是Q清0,后面当rst为低电平时又可以开始表决,当最后一个表决信号只有1个人同意时,由于人数少于4,所以Q为0,不通过,结果与设计
13、相仿。_5设计名称:十进制计数器的设计主要功能:使能端为高电平且复位信号为低电平是,进行模十同步计数,同时满10 的时候清0并且进位co置1,在一个始终后默认高位已经接受完进位信号将其清0。使能端为低电平时计数器保持输出不变,当使能端为高电平,且复位信号为高电平时,将计数器异步清0.设计框图:设计代码:module ten(clk,rst_tong,rst_yi,a,co,ena); input clk; input rst_tong; input rst_yi; input ena; output 3:0 a; output co; reg 3:0a; reg co;always(posed
14、ge clk or posedge rst_yi)beginco=0;if(rst_yi) begin a=4b0000; co=0;endif(!ena) beginco=0;endelsebegin if(rst_tong)begin a=4b0000; co=0;end else if(a4b1001) a=a+4b0001;elseif(a=4b1001)begin a=4b0000; co=1;endendendendmodule仿真代码:timescale 1ns/1nsmodule tb; reg clk; reg rst_yi; reg ena; reg rst_tong; w
15、ire 3:0a; wire co; always #10 clk = clk; initial begin ena=0; clk = 1b0; rst_yi= 1b1; rst_tong=1b0; #10; ena=1; #14; rst_yi= 1b0; #230; rst_yi= 1b1; #20; rst_yi=1b0; #20; ena=0; #30; rst_tong=1b1; #500; $stop; end ten ten_unit(.clk(clk), .rst_yi(rst_yi), .rst_tong(rst_tong), .ena(ena), .a(a), .co(co
16、) ); endmodule仿真结果:辅助说明:这个十进制计数器里面我设计了两个复位端口,一个是同步复位端口rst_tong,一个是异步复位端口rst_yi,从仿真图形中可以看出,在使能端ena为低是计数器保持数值不变,输出全是0,当使能端ena为高电平的时候,当异步复位rst_yi为高电平是实现异步清零,这个可以在rst_yi的第二个高电平处看清楚,当rst_yi为低电平时,若rst_tong为低电平,实现正常计数,此时从0000计数到1001,在下一个时钟周期产生一个半个周期的进位高电平co,在并且计数a重新变为0,当rst-tong为高电平时,在时钟的上升沿进行同步置数此功能和当初的设计
17、目标一致。_6:设计名称: 4路抢答器主要功能: 完成抢答功能,并且在抢答结束的时候清0,在下一次抢答开始之前按抢答键无效。设计框图:设计代码:module qiang(a,b,start); input 3:0 a; input start; output 3:0b; reg 3:0b; reg 3:0temp; always(a or start)begin if(!start) begin temp=0; b=0; end else if(temp= 4b0000) begin temp=a; b=temp; end end endmodule 仿真代码:timescale 1ns/1n
18、smodule tb; reg 3:0a; reg start; wire 3:0b; initial begin start=0; a=4b0000; #10; start=1; #10; a=4b0100; #10; a=4b0110; #50; start=0; #10; a=4b0100; #30; a=4b0000; #50; start=1; #50; a=4b1000; #50; $stop; end qiang qiang_unit( .a(a), .start(start), .b(b) );Endmodule仿真结果: 辅助说明:可以看出,当start为0,抢答器未启动时,
19、输出为0000,当start为1时,此时a=0010,表明第二个人已经先按下抢答器,这是输出为0010,之后a=0110,又有人再次之后按下抢答器,但是由于a【1】已经先按下,所以a【2】按下后还是只能显示0010,这就实现了抢答功能,当start=0是,这是输出清零,这是输入0100,由于抢答器未工作,所以输出还是0000,后面当start又是1的时候,这时候a【3】抢答成功,所输出又为1000,符合当初的设计功能。7.设计名称:并串转换主要功能:在没有数据输出时,输出为x,此时ready信号为高,若load信号也为高时,则将输入的数据传输给中间寄存器temp,然后resdy信号变为低电平,
20、ready信号有temp【7】决定,当temp【7】中还有数据时,表明还没有全部转换完,则ready为低,当temp【7】没有数据显示为x时,则ready为高,表明可以接收数据了。当接收完数据之后,在8个时钟周期将信号输出。设计框图:设计代码:module bcc(clk,ain,rst,bout,load,ready); input clk; input 7:0ain; input rst; input load; output bout; output ready; reg bout; reg 7:0temp; reg ready; always (posedge rst or posed
21、ge clk)begin if(rst)begin bout =1bx; temp =8bxxxxxxxx; ready=1;end else if(load & ready) temp=ain;/if load is high leve and temp is empty,then,transport data if(temp7|!temp7) /temp7 has databegin bout=temp7; /temp shift left,and temp0 equal x temp7:1=temp6:0; temp0=1bx; ready=0;end else begin bout=1
22、bx; ready=1;end end endmodule仿真代码:timescale 1ns/1ns module bcc_tb; reg clk; reg 7:0ain; reg rst; reg load; wire ready; wire bout; always #10 clk = clk; initialbegin clk=0; rst=1; load=0; ain=11; #10; rst=0; #10; load=1; #20; load=0; #20; ain=8; #40; load=1; #20; load=0; #100; load=1; #20; load=0; #2
23、00; rst=1; #10; $stop;end bcc bcc_unit( .clk(clk), .ain(ain), .rst(rst), .load(load), .bout(bout), .ready(ready) ); Endmodule仿真结果:辅助说明:可以从仿真图形中看出,在rst为高时,进行复位,当rst为低时,由于temp里面没有数据,所以ready信号为高,此时表明temp可以接受数据,若load信号为高,之后temp则接收到ain的信号,此时temp里面有了数据,则ready信号为0,不能再传输数据,此时后8个时钟周期输出为00001011,完成串并转换,期间就算lo
24、ad为高电平,但是ready信号为低,所以不会传输下一个数据00001000,只有当之后ready为高电平时,此时财货执行下一个数据的传输。此仿真波形与我当时设计的目标相符,基本达到设计目标。8.设计名称:串并转换主要功能:当rst为高电平时进行复位,当rst为低电平时,若 load为高电平且ready为高电平(ready信号有temp决定,若temp里面的数据已经传满则ready为低电平,若temp数据还未传满,则ready为高电平)时将输入数据传给自己定义的中间寄存器temp,若temp接受完8位数据,则ok信号为高电平并且将ready置为低电平,就可以将temp的值传给bout输出,传输
25、完毕之后temp又被清空,此时ok又置为低电平,ready显示高电平。设计框图:设计代码:module cbc(clk,ain,load,rst,ready,bout,ok); input clk; input ain; input load; input rst; output ready; output 7:0bout; output ok; reg ready; reg 7:0bout; reg 7:0temp; reg ok; always (posedge clk or posedge rst)begin bout=8bxxxxxxxx; if(rst)begin temp=8bxxxxxxxx; bout=8bxxxxxxxx;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应急安全培训题库大全课件
- 2025广东机电职业技术学院第二批招聘工作人员11人笔试备考试题含答案详解
- 新生儿感染性疾病的病原学分类与传播途径
- 土地抵押合同(标准版)
- 中介和买家合同(标准版)
- 2025年环保设备制造业竞争激烈产品创新趋势分析报告
- 2025年工业互联网平台增强现实交互技术在虚拟现实工厂中的应用报告
- 2025年母婴用品跨境电商行业发展趋势与市场机会研究报告
- 中考英语一轮复习完形填空汇编知识点-+典型题及解析
- 山东省德州市2024-2025学年高三下学期三模化学试题(含答案)
- 2025十堰张湾区城市社区党组织书记专项招聘事业编制人员考试笔试试卷【附答案】
- 2025年国防教育知识竞赛试题(附答案)
- 2025国庆节前安全教育培训
- 国歌课件教学课件
- 增补合同协议模板
- 玉盘二部合唱简谱
- 2022注册安全工程师考试题库(含答案)
- 面瘫(面神经炎)课件
- 城市道路工程质量事故
- 铁路路基大维修规则
- 四年级上册数学 线段、直线、射线、角(同步练习)人教版 (无答案)
评论
0/150
提交评论