题目一:表决器电路设计一、设计任务及原理:所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。
实验中用7个拨动开关来表示七个人,当对应的拨动开关输入为‘1’时,表示此人同意;否则若拨动开关输入为‘0’,则表示此人反对。
表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。
同时,数码管上显示通过的票数。
二、具体要求:本实验就是利用实验系统中的拨动开关模块和LED模块以及数码管模块来实现一个简单的七人表决器的功能。
拨动开关模块中的K1~K7表示七个人,当拨动开关输入为‘1’时,表示对应的人投同意票,否则当拨动开关输入为‘0’时,表示对应的人投反对票;LED模块中LED1表示七人表决的结果,当LED1点亮时,表示此行为通过表决;否则当LED1熄灭时,表示此行为未通过表决。
同时通过的票数在数码管上显示出来。
在此实验中数码管、LED、拨动开关与FPGA的连接电路和管脚连接使用模块信号对应FPGA管脚说明在以前的实验中都做了详细说明,这里不在赘述。
端口名S1 按键开关S1 R16 表示1号抢答者S2 按键开关S2 P14 表示2号抢答者S3 按键开关S3 P16 表示3号抢答者S4 按键开关S4 P15 表示4号抢答者S5 按键开关S5 M15 表示5号抢答者S6 按键开关S6 N16 表示6号抢答者S7 按键开关S7 N15 表示7号抢答者DOUT0 LED模块D1 L14 表决结果亮为通过LEDAG0 数码管模块A段N4 抢答成功者号码显示LEDAG1 数码管模块B段G4LEDAG2 数码管模H4块C段参考答案:module liu(s,dout0,ledag);input [6:0]s;output dout0;output [6:0]ledag;reg [6:0]led;reg [2:0]k;reg clk_en;reg dout;always @(s)begink<=s[1]+s[2]+s[3]+s[4]+s[5]+s[6]+s[0];if(k>=4)begindout<=1;endelsebegindout<=0;endendalways@(k)begincase (k)3'd0:led<=7'b0111111;3'd1:led<=7'b0000110;3'd2:led<=7'b1011011;3'd3:led<=7'b1001111;3'd4:led<=7'b1100110;3'd5:led<=7'b1101101;3'd6:led<=7'b1111101;3'd7:led<=7'b0000111;default:led<=7'b0000000;endcaseendassignledag=led;assigndout0=dout;endmodule题目二:数字电子实验设计题目:彩灯循环电路设计一、设计任务及原理:所谓彩灯循环就是对于一组彩灯(16盏),通过不同的工作模式可按照一定的规律来点亮或者熄灭。
我们所要求的彩灯循环电路共分4个节拍,四个节拍按照一定的顺序依次循环执行。
二、具体要求:系统设有一个复位键,当按下复位键后,系统从第一节拍开始执行直到第四节拍结束,然后从第一节拍重新开始新的循环。
第一节拍:16盏灯(Q1~Q16)从Q1开始依次点亮,直到Q16为止。
每盏灯点亮的时间间隔为一秒,即Q1点亮后,间隔一秒后Q2点亮,然后依次点亮。
(下面类似间隔时间都为1秒)第二节拍:在第一节拍的基础上,16盏灯(Q1~Q16)从Q16开始依次熄灭,直到Q1为止。
每盏灯熄灭的时间间隔为一秒,即Q16熄灭后,间隔一秒后Q15熄灭,然后依次熄灭直到全部熄灭为止。
(下面类似间隔时间都为1秒)第三节拍: 16盏灯(Q1~Q16)从两端开始依次点亮,即(Q1、Q16先点亮,然后Q2、Q15再点亮,直到全部16盏等点亮为止)。
每盏灯点亮的时间间隔为一秒。
第四节拍:在第三节拍的基础上,16盏灯(Q1~Q16)从中间开始依次熄灭,即(Q8、Q9先熄灭,然后Q7、Q10再熄灭,直到全部16盏灯熄灭为止)。
每盏灯熄灭的时间间隔为一秒。
在此实验中数码管、LED、拨动开关与FPGA使用模对应说明的连接电路和管脚连接在以前的实验中都做了详细说明,这里不在赘述。
端口名块信号FPGA管脚S1 按键开关S1 R16 表示复位按键Q1 Q1 L14Q2 Q2 M14Q3 Q3 N14Q4 Q4 N13Q5 Q5 P12 参考答案:module liu2(clk,ret,led);input clk,ret;output[16:1] led;wire ret_en;reg [16:1]led1;reg [5:0]i,j,k,l,m;reg [31:0]cout;reg clk_en;assignret_en=ret;always@(posedge clk or negedge ret_en)beginif(~ret_en)beginled1<=16'b0000000000000000;i<=0;endelsebegincout<=(cout==32'd5*******)?32'd0:(cout+32'd1);clk_en<=(cout==32'd5*******)?1'd1:(1'd0);if(clk_en)beginj<=0;k<=0;i<=i+1;if(i<=16)begin//dex<=i;//l<=0;//m<=0;led1[i]<=1;//led1[i-j]<=0; endelse if(i>16&&i<=32) beginj<=k*2+1;k<=k+1;led1[i-j]<=0;//dex<=dex-1;endelse if(i>32&&i<=40) begin//dex<=dex+1;//l<=2*m+17;led1[i-32]<=1;led1[49-i]<=1; endelse if(i>40&&i<=48) beginled1[i-32]<=0;led1[49-i]<=0;//dex<=dex-1;endelsebegini<=0;led1<=16'b0000000000000000;endendendendassignled=led1;endmodule题目三:汽车尾灯控制电路设计一、设计任务及原理:假设汽车尾部左右两侧各有3个指示灯,(1)汽车正常运行时,指示灯全灭。
(2)左转弯时,左侧3个指示灯按照左循环顺序点亮(1HZ)。
(3) 右转弯时,右侧3个指示灯按照右循环顺序点亮(1HZ)。
(4)临时刹车时,所有指示灯同时闪烁(1HZ)。
二、具体要求:尾灯与汽车运行状态运行状态左尾灯右尾灯表开关控制S1 S0 D1 D2 D3 D4 D5 D6 0 0 正常运行灯灭灯灭0 1 左转弯按照D3,D2,D1顺序循环点亮灯灭1 0 右转弯灯灭按照D4,D5,D6顺序循环点亮1 1 临时停车1HZ频率同时闪烁1HZ频率同时闪烁在此实验中数码管、LED、拨动开关与FPGA的连接电路和管脚连接在以前的实验中都做了详细说明,这里不在赘述。
端口名使用模块信号对应FPGA管脚S1 按键开关S1 R16 S2 按键开关S2 P14 D1 LED模块D1 L14 D2 LED模块D2M14D3 LED模块N14D3N13D4 LED模块D4D5 LED模块P12D5D6 LED模块N12D6脉冲源50MHZ CP J3 参考程序:module lwf(clk,ledag,s);input clk;input [1:0]s;output[5:0]ledag;reg[5:0]led;reg[1:0]i,j,k;reg[31:0]cout;reg clk_en;always@(posedge clk)begincout<=(cout==32'd5*******)?32'd0:(cout+32'd1);clk_en<=(cout==32'd5*******)?1'd1:(1'd0);if(clk_en)beginif(s==2'b00)begini<=0;j<=0;k<=0;led<=6'b000000;endelse if(s==2'b01)beginled<=6'b000000;k<=0;j<=0;i<=i+1;if(i==2'b01)beginled<=6'b001000;endif(i==2'b10)beginled<=6'b010000;endif(i==2'b11)beginled<=6'b100000;i<=0;endendelse if(s==2'b10) beginled<=6'b000000;k<=0;i<=0;j<=j+1;if(j==2'b01)beginled<=6'b000100;endif(j==2'b10)beginled<=6'b000010;endif(j==2'b11)beginled<=6'b000001;j<=0;endendelse if(s==2'b11)beginled<=6'b000000;i<=0;j<=0;k<=k+1;if(k==2'b01)beginled<=6'b000000;endif(k==2'b10)beginled<=6'b111111;k<=0;endendendendassignledag=led;endmodule题目四:数字电子实验设计题目:抢答器电路设计一、设计任务及原理:抢答器在各类竞赛性质的场合得到了广泛的应用,它的出现,消除了原来由于人眼的误差而未能正确判断最先抢答的人的情况。