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

2019-08-31 14:07

s_sb_y b_sb_y

解答: 程序代码:

11 10 13 12 15 14 module a(a,s,b,y,s0); input a,b,s,s0; output y;

assign y=(s&&b)||(s0&&a); specify

(a=>y)=(10,12,14); (b=>y)=(10,12,14); (s=>y)=(11,13,15); (s0=>y)=(11,13,15); endspecify endmodule

module b(a,s,b,y); input s,a,s,b; output y; wire s0;

not #(4)U1(s0,s);

delay_door U2(a,s,b,y,s0); endmodule

题目10.设计一个8位数字显示的简易频率计。要求: ①能够测试10Hz~10MHz方波信号;

②电路输入的基准时钟为1Hz,要求测量值以8421BCD码形式输出; ③系统有复位键;

④采用分层次分模块的方法,用Verilog HDL进行设计。

解答: 程序代码:

module x;

reg standard_clk; reg test_clk; wire [7:0]out; reg reset;

initial begin reset=0; test_clk=0; standard_clk=0; end

initial #15 reset=1;

always #1 test_clk=~test_clk;

always #10 standard_clk=~standard_clk;

a U1(.reset(reset),.test_clk(test_clk),.standard_clk(standard_clk),.ratio_final(out)); endmodule

module a(reset,test_clk,standard_clk,ratio_final); input reset,test_clk,standard_clk; output [7:0]ratio_final; wire mul_clk; wire reset_comp; wire [7:0]ratio_start;

and U0(reset_comp,reset,standard_clk);

t U1(.ain(test_clk),.din(standard_clk),.mul(mul_clk));

w U2(.clk(mul_clk),.count(ratio_start),.reset(reset_comp)); c U3(.ratio_start(ratio_start),.ratio_final(ratio_final)); endmodule

module w(clk,count,reset); input clk,reset; output count; parameter bit=8; reg [bit-1:0]count;

always @(posedge clk or negedge reset) if(!reset)

count<=8'b00000000; else

count<=count+1; endmodule

module t(ain,din,mul); parameter width=1; input [width-1:0]ain,din; output [width*2-1:0]mul; assign mul=ain*din; endmodule

module c(ratio_start,ratio_final); input [7:0]ratio_start; output [7:0]ratio_final;

assign ratio_final=2*ratio_start; endmodule

题目11. 用Verilog HDL设计一个4位LED显示器的动态扫描译码电路。要求: ①4个七段显示器共用一个译码驱动电路; ②显示的数码管清晰明亮,无闪烁现象发生。 解答:

module a(out,in); output out; input in; reg[6:0]out; wire[3:0]in; always@(in) begin case(in)

4'd0:out=7'b1111110; 4'd1:out=7'b0110000; 4'd2:out=7'b1101101; 4'd3:out=7'b1111001; 4'd4:out=7'b0110011; 4'd5:out=7'b1011011; 4'd6:out=7'b1011111; 4'd7:out=7'b1110000; 4'd8:out=7'b1111111; 4'd9:out=7'b1111011; endcase end

endmodule

module w(in1,in2,in3,in4,out1,out2,out3,out4); output out1,out2,out3,out4; input in1,in2,in3,in4; wire [3:0]in1,in2,in3,in4;

wire[6:0]out1,out2,out3,out4; a U1(.in(in1),.out(out1)); a U2(.in(in2),.out(out2)); a U3(.in(in3),.out(out3)); a U4(.in(in4),.out(out4)); endmodule

module c;

reg [3:0]in1,in2,in3,in4;

wire[6:0]out1,out2,out3,out4; initial begin

in1=4'b0010;

in2=4'b0100; in3=4'b1000; in4=4'b0000; end initial begin

#5 in4=4'b0111; in3=4'b0110; in2=4'b0100; in1=4'b0000; end

w U1(in1,in2,in3,in4,out1,out2,out3,out4);

endmodule


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

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

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

马上注册会员

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