哈工大_数电大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
H a r b i n I n s t i t u t e o f T e c h n o l o g y
数电大作业
院系:航天学院
班级:
姓名:
学号:
©哈尔滨工业大学
1.血型匹配判断
源程序:
module ABO1(
IN1,IN2,S
);
input [1:0] IN1;//IN1 IS TO GIVE
input [1:0] IN2;//IN2 IS TO GET
output S;
reg S;
always
case(IN1)
2'b00:
case(IN2)
2'b00:S=1;
2'b01:S=0;
2'b10:S=1;
2'b11:S=0;
endcase
2'b01:
case(IN2)
2'b00:S=0;
2'b01:S=1;
2'b10:S=1;
2'b11:S=0;
endcase
2'b10:
case(IN2)
2'b00:S=0;
2'b01:S=0;
2'b10:S=1;
2'b11:S=0;
endcase
2'b11:
case(IN2)
2'b00:S=1;
2'b01:S=1;
2'b10:S=1;
2'b11:S=1;
endcase
endcase endmodule
电路图:
2.计数器(0-211)
此计数器为八进制计数器,采用数码管显示源程序:
module js5(clc,clk,ca,an,led
);
input clc,clk;
output [3:0]an;
output[6:0]ca;
output[7:0]led;
reg [15:0] p;
reg [3:0] digit;
wire[3:0]aen;
wire[3:0]s;
reg[3:0]an;
reg [6:0]ca;
reg [22:0] clkdiv;
assign s=clkdiv[19:18];
/*
assign aen[3]=p[15]|p[14]|p[13]|p[12]; assign aen[2]=p[15]|p[14]|p[13]|p[12] |p[11]|p[10]|p[9]|p[8];
assign aen[1]=p[15]|p[14]|p[13]|p[12] |p[11]|p[10]|p[9]|p[8]
|p[7]|p[6]|p[5]|p[4];
assign aen[0]=1;
*/
assign aen[3]=p[11]|p[10]|p[9]; assign aen[2]=p[11]|p[10]|p[9]|p[8]
|p[7]|p[6]|p[5];
assign aen[1]=p[11]|p[10]|p[9]|p[8]
|p[7]|p[6]|p[5]|p[4]|p[3];
assign aen[0]=1;
always@(posedge clk or posedge clc)
begin
if(clc==1)
clkdiv<=0;
else
clkdiv<=clkdiv+1;
end
always@(posedge clk or posedge clc)
begin
if(clc)
p<=0;
else if(clkdiv==0)
begin
p<=p+1;
if(p==211)
p<=0;
end
end
always@(*)
case(s)
0:digit=p[2:0];
1:digit=p[5:3];
2:digit=p[8:6];
3:digit=p[11:9];
default:digit=p[3:0]; endcase
always@(*)
case(digit)
0:ca=7'b0000001; 1:ca=7'b1001111; 2:ca=7'b0010010; 3:ca=7'b0000110; 4:ca=7'b1001100; 5:ca=7'b0100100; 6:ca=7'b0100000; 7:ca=7'b0001111;
8:ca=7'b0000000;
9:ca=7'b0000100;
'hA:ca=7'b0001000;
'hB:ca=7'b1100000;
'hC:ca=7'b0110001;
'hD:ca=7'b1000010;
'hE:ca=7'b0110000;
'hF:ca=7'b0111000;
default:ca=7'b0000001;
endcase
always@(*)
begin
an=4'b1111;
if(aen[s]==1)
an[s]=0;
end
assign led=p[7:0]; endmodule