1樓:至尊逆流
這個好像幫不了,我用的是vhdl,找找其他人吧……
2樓:匿名使用者
module asd (
input ncr,en,cp1,adj_min,adj_hour,sel,//sel to change the display;
input wire sign,//set clock signal
input wire set0,set1,set2,set3,set4,set5,//to set the minuteset and hourset
output wire [7:0] a,b,c,d,
output reg glare,time
);wire [7:0]hour1,minute1,second1,hour2,minute2,second2;
supply1 vcc;
wire[7:0]hour,minute,second;
wire cp;
wire minl_en,minh_en,hour_en;
reg [6:0]minuteset,hourset,temp;
//*****====hour:minute:second counter*****====
freq freq_n1
(.clk50m(cp1),
.rst(~ncr),
.clk1hz(cp)
);always@(posedge sign)
begin
temp=7'h00;
temp[0]=set0;
temp[1]=set1;
temp[2]=set2;
temp[3]=set3;
if((set4==1)&&(set5==0)) temp=(temp+7'h16);
if((set4==1)&&(set5==1)) temp=(temp+7'h48);
if((set4==0)&&(set5==1)) temp=(temp+7'h32);
minuteset=temp;
endalways@(negedge sign)
begin
temp=7'h00;
temp[0]=set0;
temp[1]=set1;
temp[2]=set2;
temp[3]=set3;
if((set4==1)&&(set5==0)) temp=(temp+7'h16);
if((set4==1)&&(set5==1)) temp=(temp+7'h48);
if((set4==0)&&(set5==1)) temp=(temp+7'h32);
hourset=temp;
endcounter10 u1(second[3:0],ncr,en,cp);
disp s2_disp(cp,second[3:0],second2);
counter6 u2(second[7:4],ncr,(second[3:0]==4'h9),cp);
disp s1_disp(cp,second[7:4],second1);
//assign minl_en = adj_min ? (second==8'h59):vcc;
assign minh_en = (((adj_min==1'h0)&&(minute[3:0]==4'h9))||((adj_min==1'h1)&&(minute[3:0]==4'h9)&&(second==8'h59)));
//counter10 u3(minute[3:0],ncr,minl_en,cp);
disp m2_disp(cp,minute[3:0],minute2);
counter6 u4(minute[7:4],ncr,minh_en,cp);
disp m1_disp(cp,minute[7:4],minute1);
assign hour_en = adj_hour? ((minute==8'h59)&&(second==8'h59)):vcc;
counter24 u5(hour[7:4],hour[3:0],ncr,hour_en,cp);
disp h2_disp(cp,hour[3:0],hour2);
disp h1_disp(cp,hour[7:4],hour1);
always@(posedge cp)
begin
if((en==1)&&(hour==hourset)&&(minute==minuteset)&&(second<=8'h09)) glare<=1'h1;
else glare<=1'h0;
endalways@(posedge cp)
begin
if((minute==8'h59)&&(second>=8'h55)&&(second!=8'h59)) time<=1'h1;
else if((hour>=8'h01)&&(minute==8'h00)&&(second<=8'h03)) time<=1'h1;
else time<=1'h0;
enddispsel n_dispsel(hour2,hour1,minute2,minute1,second2,second1,a,b,c,d,sel);
endmodule
//*********counter6.v(bcd:0~5)********
module counter6(q,ncr,en,cp);
input cp,ncr,en;
output [3:0]q;
reg [3:0]q;
always@(posedge cp or negedge ncr)
begin
if(~ncr) q<=4'b0000;
else if(~en) q<=q;
else if(q==4'b0101) q<=4'b0000;
else q<=q+1'b1;
endendmodule
//**********counter10.v(bcd:0~5)**********
module counter10(q,ncr,en,cp);
input cp,ncr,en;
output [3:0] q;
reg [3:0] q;
always@(posedge cp or negedge ncr)
begin
if(~ncr) q<=4'b0000;//
else if(~en) q<=q;
else if(q==4'b1001) q<=4'b0000;
else q<=q+1'b1;
endendmodule
//*********counter24.v(bcd:0~23)*********
module counter24(cnth,cntl,ncr,en,cp);
input cp,ncr,en;
output [3:0]cnth,cntl;
reg [3:0]cnth,cntl;
reg co;
always@(posedge cp or negedge ncr)
begin
if(!ncr)<=8'h00;
else if(~en)<=;
else if((cnth>2)||(cntl>9)||((cnth==2)&&(cntl>=3)))
<=8'h00;
else if((cnth==2)&&(cntl<3))
begin cnth<=cnth;cntl<=cntl+1'b1;end
else if(cntl==9)
begin cnth<=cnth+1'b1;cntl<=4'b0000;end
else
begin cnth<=cnth; cntl<=cntl+1'b1;end
endendmodule
module disp
(input wire clk50m,
input wire[3:0] hexcode,
output wire[7:0] segmentcode
);reg[7:0] segment;
//assign segmentcode[7:0] = segment[7:0]; //1 for light on the led
assign segmentcode[7:0] = ~segment[7:0];//0 for light on the led
always @(posedge clk50m)
begin
begin
case(hexcode)
4'h0:
begin
segment <= 8'h3f;
end4'h1:
begin
segment <= 8'h06;
end4'h2:
begin
segment <= 8'h5b;
end4'h3:
begin
segment <= 8'h4f;
end4'h4:
begin
segment <= 8'h66;
end4'h5:
begin
segment <= 8'h6d;
end4'h6:
begin
segment <= 8'h7d;
end4'h7:
begin
segment <= 8'h07;
end4'h8:
begin
segment <= 8'h7f;
end4'h9:
begin
segment <= 8'h6f;
enddefault:
begin
segment <= 8'h00;
endendcase
endend
endmodule
module dispsel
(input wire[7:0] hourh, //輸入的小時高位的7段顯示編碼
input wire[7:0] hourl, //輸入的小時低位的7段顯示編碼
input wire[7:0] minh, //輸入的分鐘高位的7段顯示編碼
input wire[7:0] minl, //輸入的分鐘低位的7段顯示編碼
input wire[7:0] sech, //輸入的秒鐘高位的7段顯示編碼
input wire[7:0] secl, //輸入的秒鐘低位的7段顯示編碼
output wire[7:0] hex3, //輸出的選擇後的7段顯示編碼,分配到開發板的hex3顯示管
output wire[7:0] hex2, //輸出的選擇後的7段顯示編碼,分配到開發板的hex2顯示管
output wire[7:0] hex1, //輸出的選擇後的7段顯示編碼,分配到開發板的hex1顯示管
output wire[7:0] hex0, //輸出的選擇後的7段顯示編碼,分配到開發板的hex0顯示管
input wire sel //選擇輸入訊號
);assign hex3[7:0] = sel?8'hff:hourh[7:0]; //選擇輸入訊號為1時,hex3顯示為無效資料,選擇輸入訊號為0時顯示小時高位訊號
assign hex2[7:0] = sel?8'hff:hourl[7:0]; //選擇輸入訊號為1時,hex2顯示為無效資料,選擇輸入訊號為0時顯示小時高位訊號
assign hex1[7:0] = sel?sech[7:
0]:minh[7:0]; //選擇輸入訊號為1時,hex1顯示為秒鐘高位訊號,選擇輸入訊號為0時顯示分鐘高位訊號
assign hex0[7:0] = sel?secl[7:
0]:minl[7:0];//選擇輸入訊號為1時,hex1顯示為秒鐘低位訊號,選擇輸入訊號為0時顯示分鐘低位訊號
endmodule
module freq
(input wire clk50m,
input wire rst,
output reg clk1hz
);parameter cnt_1hz = 50000000;
reg[31:0] cnt;
always @(posedge clk50m or posedge rst)
begin
if(rst)
begin
clk1hz <= 0;
cnt <= 0;
endelse
begin
if(cnt >= cnt_1hz -1)
begin
cnt <= 0;
endelse
begin
cnt <= cnt + 1;
endif(cnt < cnt_1hz/2)
begin
clk1hz <= 0;
endelse if(cnt < cnt_1hz - 1)
begin
clk1hz <= 1;
endend
endendmodule
你印象最深的瀑布是什麼,可否聊聊?
為什麼黃果樹今年評為最差?黃果樹獲得差評實至名歸理所當然 但凡景區人多一點 買票排隊,坐車排隊,進景區門口排隊,吃飯排隊,上廁所排隊。景區好像根本沒有解決的意思 解決 旺季週末多增設臨時售票口,發揮電腦自動取票功能!買票都浪費半個多小時是常見的事情!坐車通道只有兩個,太少,遊客上車太難!要增加遊客上...
小明在鏡子裡看到沒有數字的時針鐘面上的時間是四時十分那麼實際的時間是()時()分
小百合 小明在鏡子裡看到乙個沒有數字的時針鐘面上的時間是四時十分那麼實際的時間是 7 時 20 分 林辰 因為鏡子裡看到的事物與實際事物是對稱的。鐘面上的數字就是以鏈結 12與6 這條直線對稱。所以鏡子裡看到的應該是 8時50分 我可愛的雨總 七點五十或19 50。望採納 小明從鏡子裡看到乙個鐘面的...
可否一下讓你用詞形容未來,你的選擇
快樂小答 如果要我用一個詞來形容我的未來,我的選擇只能是渺忙的。 夏至 如果讓我用一個詞形容未來的話,我會覺得我們中國應該是那種無懈可擊的狀態吧,比現在肯定要好。 編號 如果讓我用一個詞來形容未來,那麼我會用精彩兩個字,我相信我的未來是精彩的,他有無限的可能,所以我也憧憬,未來是我最美的期待。 瞎胡...