数电实验考试verilogHDL语言及参考程序 下载本文

题目一: 表决器电路设计

一、设计任务及原理:所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。

七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。实验中用7个拨动开关来表示七个人,当对应的拨动开关输入为‘1’时,表示此人同意;否则若拨动开关输入为‘0’,则表示此人反对。表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。同时,数码管上显示通过的票数。 二、具体要求:

本实验就是利用实验系统中的拨动开关模块和LED模块以及数码管模块来实现一个简单的七人表决器的功能。拨动开关模块中的K1~K7表示七个人,当拨动开关输入为‘1’时,表示对应的人投同意票,否则当拨动开关输入为‘0’时,表示对应的人投反对票;LED模块中LED1表示七人表决的结果,当LED1点亮时,表示此行为通过表决;否则当LED1熄灭时,表示此行为未通过表决。同时通过的票数在数码管上显示出来。 在此实验中数码管、LED、拨动开关与FPGA的连接电路和管脚连接

使用模块信号

对应FPGA管脚

说 明

在以前的实验中都做了详细说明,这里不在赘述。 端口名

S1

S2

S3

S4

S5

S6

S7

DOUT0

LEDAG0

LEDAG1

按键开关S1

按键开关S2

按键开关S3

按键开关S4

按键开关S5

按键开关S6

按键开关S7

LED模块D1

数码管模块A段

数码管模块B段

R16

表示1号抢答者 P14 表示2号抢答者 P16 表示3号抢答者 P15 表示4号抢答者 M15 表示5号抢答者 N16 表示6号抢答者 N15 表示7号抢答者 L14 表决结果亮为通过

N4

抢答成功者 G4 号码显示

LEDAG2 数码管模块C段

H4

参考答案:

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) 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 ledag=led; assign dout0=dout; endmodule

题目二:数字电子实验设计题目:彩灯循环电路设计