资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
精选优质文档-倾情为你奉上 三人表决器1.任务:使用verilog语言设计一个三人表决器,其功能是:有3个输入,当有输入时,产生输出的值会显示在数码管中,例如,有1人表示同意时,数码管显示1, 2人同意时,数码管显示2。2.设计流程图:3.源程序设计: module sanrenbiaojue(key1,key2,key3,led1,led2,led3,SEG_DATE,SEG_EN);input key1;input key2;input key3;output led1;output led2;output led3;output 3:0 SEG_EN;output reg 6:0 SEG_DATE; /装载3个输入的值parameterSEG_NUMO = 7h3f,SEG_NUM1 = 7h06, /数码管显示1SEG_NUM2 = 7h5b, /数码管显示2SEG_NUM3 = 7h4f; /数码管显示3always (*)begin case(key1,key2,key3) /检测按键KEY3,KEY2,KEY1是否按下,按下为1,悬空为03b000:SEG_DATE=SEG_NUMO; /当有0个按键按下时,数码管就显示数字03b001:SEG_DATE=SEG_NUM1; /当有1个按键按下时,数码管就显示数字13b010:SEG_DATE=SEG_NUM1;3b011:SEG_DATE=SEG_NUM2;3b100:SEG_DATE=SEG_NUM1;3b101:SEG_DATE=SEG_NUM2;3b110:SEG_DATE=SEG_NUM2;3b111:SEG_DATE=SEG_NUM3;default:SEG_DATE=SEG_NUMO;endcaseendassign led1=!key1; /当按键1按下其对应的D1将会亮起assign led2=!key2; /当按键2按下其对应的D2将会亮起assign led3=!key3; /当按键3按下其对应的D3将会亮起assign SEG_EN=4b0111; / SEG1-SEG3熄灭,SEG4点亮 endmodule4.TestBench代码:timescale 1 ps/ 1 psmodule sanrenbiaojue_vlg_tstfirst();/ constants / general purpose registersreg eachvec;/ test vector input registersreg key1;reg key2;reg key3;/ wires wire 6:0 SEG_DATE;wire 3:0 SEG_EN;wire led1;wire led2;wire led3;/ assign statements (if any) sanrenbiaojue i1 (/ port map - connection between master ports and signals/registers .SEG_DATE(SEG_DATE),.SEG_EN(SEG_EN),.key1(key1),.key2(key2),.key3(key3),.led1(led1),.led2(led2),.led3(led3);initial beginkey1=0;key2=0;key3=0;#200;key1=0;key2=0;key3=1;#200;key1=0;key2=1;key3=0;#200;key1=1;key2=0;key3=0;#200;key1=1;key2=0;key3=1;#200;key1=0;key2=1;key3=1;#200;key1=1;key2=1;key3=0;#200;key1=1;key2=1;key3=1;#200;$stop;end endmodule5.RTL结构图:6.时序仿真图:由图可以看出,当key1,key2,key3的值为001时,对应的LED3亮,此时数码管显示的值为1,程序中,SEG_DATA为数码管显示编码(换算成十进制显示为6),当输入值为011,101,110时,数码管显示的值为2,SEG_DATA为数码管显示编码,(换算成十进制显示为91),据此,可以得出三人表决器程序是正确的。专心-专注-专业
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号