预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

EDA实验报告 学院: 班级: 姓名: 学号: 实验三译码器、选择器实验 实验内容: 1:按照教材第5章内容,编写BCD-七段显示译码器、数据选择器、数据分配器、数字比较器的VerilogHDL程序,并实现其仿真; BCD-七段显示译码器 程序代码如下: modulebcd_decorder(y,a); output[6:0]y; input[3:0]a; reg[6:0]y; always@(a) begin case(a[3:0]) 4'b0000:y[6:0]=7'b1111110; 4'b0001:y[6:0]=7'b0110000; 4'b0010:y[6:0]=7'b1101101; 4'b0011:y[6:0]=7'b1111001; 4'b0100:y[6:0]=7'b0110011; 4'b0101:y[6:0]=7'b1011011; 4'b0110:y[6:0]=7'b1011111; 4'b0111:y[6:0]=7'b1110000; 4'b1000:y[6:0]=7'b1111111; 4'b1001:y[6:0]=7'b1111011; 4'b1010:y[6:0]=7'b1110111; 4'b1011:y[6:0]=7'b0011111; 4'b1100:y[6:0]=7'b1001110; 4'b1101:y[6:0]=7'b0111101; 4'b1110:y[6:0]=7'b1001111; 4'b1111:y[6:0]=7'b1000111; endcase end endmodule 功能仿真如下: 时序仿真如下: 包装如下: 数据选择器 程序代码如下: modulemux4(y,d0,d1,d2,d3,g,a); outputy; inputd0,d1,d2,d3; inputg; input[1:0]a; regy; always@(d0ord1ord2ord3orgora) begin if(g==0)y=0; else case(a[1:0]) 2'b00:y=d0; 2'b01:y=d1; 2'b10:y=d2; 2'b11:y=d3; default:y=0; endcase end endmodule 功能仿真如下: 时序仿真如下: 包装如下: 数据分配器 程序代码如下: moduledemux4(y0,y1,y2,y3,din,a); outputy0,y1,y2,y3; inputdin; input[1:0]a; regy0,y1,y2,y3; always@(din,a) begin y0=0;y1=0;y2=0;y3=0; case(a[1:0]) 2'b00:y0=din; 2'b01:y1=din; 2'b10:y2=din; 2'b11:y3=din; default:; endcase end endmodule 功能仿真如下: 时序仿真如下: 包装如下: 数字比较器 程序代码如下: modulecomparator_4(y1,y2,y3,a,b); outputy1,y2,y3; input[3:0]a,b; regy1,y2,y3; always@(a,b) begin if(a>b) begin y1=1;y2=0;y3=0; end elseif(a==b) begin y1=0;y2=1;y3=0; end elseif(a<b) begin y1=0;y2=0;y3=1; end end endmodule 功能仿真如下: 时序仿真如下: 包装如下: 2:按照教材第6章内容,编写RS触发器、JK触发器VerilogHDL程序,并实现其仿真; RS触发器 程序代码如下: moduleRS(q,qn,s,r); outputq,qn; inputs,r; regq,qn; regq1,qn1; always@(*) begin q1=~(s&qn1); qn1=~(r&q1); q=q1; qn=qn1; end endmodule 功能仿真如下: 时序仿真如下: 包装如下: JK触发器 程序代码如下: moduleJK(q,qn,j,k,r,s,cp); outputq,qn; inputj,k,r,s,cp; regq,qn; always@(posedgecp) begin if({r,s}==2'b01) beginq<=0;qn<=1;end elseif({r,s}==2'b10) beginq<=q;qn<=qn;end elseif({r,s}==2'b11) begin