蔡觉平老师西电Verilog HDL上机大作业(硬件描述语言) - 微电子(2)

2019-08-31 14:07

0 1 1 1 1

1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 解答:

module homework6(SUM,COUT,A,B,CIN); output SUM,COUT; input A,B,CIN; reg SUM,COUT;

always@(A or B or CIN) case({A,B,CIN})

3'b000:SUM<=0; 3'b000:COUT<=0; 3'b001:SUM<=1; 3'b001:COUT<=0; 3'b010:SUM<=1; 3'b010:COUT<=0; 3'b011:SUM<=0; 3'b011:COUT<=1; 3'b100:SUM<=1; 3'b100:COUT<=0; 3'b101:SUM<=0; 3'b101:COUT<=1; 3'b110:SUM<=0; 3'b110:COUT<=1; 3'b111:SUM<=1; 3'b111: COUT<=1; endcase endmodule

题目7:设计16位同步加法器和乘法器 要求:(1)分析16位同步加法器和乘法器结构和电路特点; (2)用硬件描述语言进行设计; (3)编写测试仿真并进行仿真。

解答:

(1)16位同步加法器和乘法器结构和电路特点:加法器的进位只用考虑一位,但是乘法器的进位要考虑到32位才行。 (2)程序代码: 16位同步加法器:

module adder(a,b,c,sum,cout); output [15:0]sum; output cout; input [15:0]a,b; input c;

assign {cout,sum}=a+b+c; endmodule

16位同步乘法器:

module multiplier(a,b,mul); input [15:0]a,b; output [31:0]mul; assign mul=a*b; endmodule

(3)仿真代码: 16位同步加法器: module adder_tb; reg [15:0]a,b; reg c;

wire [15:0]sum; wire cout; initial begin

a=8;b=8;c=1; end initial begin

#10 a=16'b1111111111111111;#10 b=1; end

adder U2(.a (a),.b (b),.c(c),.cout(cout),.sum(sum)); endmodule

16位同步乘法器: module multiplier_tb; reg [15:0]a,b; wire [31:0]mul; initial begin

a=3;b=8; end initial begin #10 a=100; #15 b=100; end

multiplier U1(.a(a),.b(b),.mul(mul)); endmodule

仿真截图: 加法器:

乘法器:

题目8. 将下面的状态转移图用Verilog HDL描述。在图中,状态机的输入只与状态的跳转有关,与状态机的输出无关,因此该状态机为摩尔型状态机。下面为三段式描述方式。

start=0clr=1State0out=001step3=1start=1step3=0State3out=111step2=0State1out=010step2=1State2out=100 解答: 程序代码:

module homework8(clk,out,step,clr); output [2:0]out; input step,clk,clr; reg [2:0]out;

reg [1:0]state,next_state; always @(posedge clk) state<=next_state; always @(state or clr) if(clr)

next_state<=0; else

case(state) 2'b00:

case(step)

1'b0:begin next_state<=2'b00;out<=3'b001;end 1'b1:begin next_state<=2'b01;out<=3'b001;end endcase

2'b01: begin

out<=3'b010;

next_state<=2'b10; end

2'b10:

case(step)

1'b0:begin next_state<=2'b00;out<=3'b100;end 1'b1:begin next_state<=2'b11;out<=3'b100;end endcase 2'b11:

case(step)

1'b0:begin next_state<=2'b11;out<=3'b111;end 1'b1:begin next_state<=2'b00;out<=3'b111;end endcase endcase endmodule

仿真代码:

module homework8_tb; reg clk,step,clr; wire [3:0]out; always

#5 clk=~clk; initial

begin clk=0; clr=1; step=1; end initial begin #5clr=0; #10 step=0; #10step=1; end

homework8 U1(clk,out,step,clr); endmodule

仿真截图:

题目9. 如下图所示电路,若其延迟时间设定如表所示,试写Verilog HDL程序设计该电路。

asb路径 a_sa_y s_s0_sa_y sas0sb 最小值(min) 10 15 典型值(type) 12 17 最大值(max) 14 19 y


蔡觉平老师西电Verilog HDL上机大作业(硬件描述语言) - 微电子(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:生物统计附试验设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: