题目一: 表决器电路设计一、设计任务及原理:所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半, 就认为此行为可行; 否则如果否决的票数过半, 则认为此行为无效。七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于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段G4 LEDAG2 数 码 管 模块C段H4 参考答案:moduleliu(s,dout0,ledag); input[6:0]s; outputdout0; output[6:0]ledag; reg[6:0]led; reg[2:0]k; regclk_en; regdout; always@(s) begin k<=s[1]+s[2]+s[3]+s[4]+s[5]+s[6]+s[0]; if(k>=4) begin dout<=1; end else begin dout<=0; end end always@(k) begin case(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; endcase end assign ...