2015年EDA复习11 联系客服

发布时间 : 星期三 文章2015年EDA复习11更新完毕开始阅读

图1

图2

module MUX21A(input s,input [1:0] a,input [1:0] b,output [1:0] y); reg [1:0] y_reg; always @( s or a or b ) case ( s )

0 : y_reg = a;//当选择信号为是0时,选择a0 1 : y_reg = b;//当选择我信号为1时,选择我a1 default :y_reg = 2'b00; endcase

assign y = y_reg; endmodule

module MUXK (a1, a2, a3, s0, s1, outy); input a1, a2, a3, s0, s1; output outy; wire outy; wire tmp;

mux21a u1 (.a(a2),.b(a3),.s(s0),.y(tmp)); mux21a u2 (.a (a1),.b (tmp),.s(s1),.y(outy)); endmodule

14、根据下列给定的仿真输入输出波形图,说明完成此功能的电路是什么功能电 路?并写出对应的Verilog HDL描述程序(图中clk,clr为输入,q,c为输出)。

module counter(clk,clr,q,c) input clk,clr;

output ret[1:0] q; output c;

always@(posedge clk or negedge clr) begin

if(~clr) q<=2’h0; else begin

if(2’h3==q) q<=2’h0; else q<=q+2’h1; end end

assign c=(2’h3==q) endmodule

15.Verilog HDL设计一个4位4输入最大数值检测电路。(10分)

//Verilog设计一个4位4输入最大数值检测电路

module Maximum_value_detection(Mostlarge,a,b,c,d);//4位4输入最大数值检测电路 output [3:0] Mostlarge; input [3:0] a,b,c,d; wire[3:0]sum1,sum2,sum3; assign sum1=(a>b)?a:b; assign sum2=(c>d)?c:d;

assign Mostlarge=(sum1>sum2)?sum1:sum2; endmodule

16. 用for循环语句设计一个7人投票表决器,若超过4 人赞成,则通过。

module voter7(pass,vote);

output pass; input[6:0] vote; reg[2:0] sum; integer i; reg pass; always @(vote)

begin sum=0;

for(i=0;i<=6;i=i+1) //for 语句 if(vote[i]) sum=sum+1;

if(sum[2]) pass=1; //若超过4 人赞成,则pass=1

else pass=0;

end endmodule

17.请用Verilog的case 语句设计一个真值表如下的3-8译码器。(10分)。

module decoder3_8 ( G1 ,Y ,G2 ,A ,G3 ); input G1, G2, G3; wire G1, G2, G3; input [2:0] A ; wire [2:0] A ; output [7:0] Y ; reg [7:0] Y ; reg s;

always @ ( A ,G1, G2, G3) begin

s <= G2 | G3 ; if (G1 == 0)

Y <= 8'b1111_1111; else if (s)

Y <= 8'b1111_1111;