找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 6525|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于FPGA籃球計(jì)時(shí)器的實(shí)現(xiàn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
大一時(shí)候做的數(shù)字電路實(shí)驗(yàn)的課程設(shè)計(jì),主要完成一個(gè)簡(jiǎn)單籃球計(jì)時(shí)器
主要功能有:
(1)   實(shí)現(xiàn)24s倒計(jì)時(shí)計(jì)時(shí)精度0.1的功能;
(2)   分別有開始、暫停、進(jìn)球、犯規(guī)等操作系統(tǒng);
(3)   倒計(jì)10s時(shí)數(shù)碼管閃爍計(jì)時(shí),計(jì)時(shí)結(jié)束聲光提示;
(4)   記錄雙方犯規(guī)次數(shù),任一方滿6提示罰球;


運(yùn)行結(jié)果展示:呃呃  圖倒了。。

原理圖:

附上verilog源代碼:
  1. 附錄1.1(主24秒計(jì)時(shí)器設(shè)計(jì)):
  2. module Design(start,E,F,G,CE,Q1,Q,Q2,H,L,A,B,clk,a,b);
  3. input start,clk,CE,a,b,E;
  4. output reg[3:0] Q1;
  5. output reg[4:0] Q;
  6. output reg[3:0] Q2;
  7. output reg[3:0] L;
  8. output reg[2:0] A,B;
  9. output wire F,G,H;
  10. wire g,CR1,CR2;
  11. reg k;
  12. assign F=(Q<5'b01010);//倒計(jì)時(shí)小于10s后開始閃爍
  13. assign G=((Q==5'b00000)&(L==4'b0000));//倒計(jì)時(shí)為0時(shí)開始聲光提示
  14. assign H=((A==3'b110)|(B==3'b110));//分?jǐn)?shù)為6時(shí)開始提示罰球
  15. assign CR1=((A==3'b110)|(B==3'b110)|(CE==1)|a==1|((b==1)&(Q>5'b01110)));//復(fù)位24秒
  16. assign CR2=((b==1)&(Q<=5'b01110));//復(fù)位14秒
  17. always @ (posedge clk)
  18. if(!start)
  19.   begin  Q=5'b11000;Q1=4;Q2=2;L=3'b000;A=0;B=0;k=0;  end//是否開始計(jì)數(shù)使能端
  20. else
  21. begin

  22. if(G==1);//聲光提示
  23. else
  24. begin

  25. if(g==0&E==0&CR1==0&CR2==0)
  26.   begin
  27.     if(L==4'b0000)
  28.          begin  Q=Q-5'b00001;L=4'b1001; end
  29.          else if(L>4'b0000)
  30.          begin L=L-4'b0001;k=0;  end
  31. if(Q<10)
  32.   begin Q1=Q;Q2=0; end
  33. else if(Q>9&Q<20)
  34.   begin Q1=Q-10;Q2=1; end
  35. else if(Q>19)
  36.   begin Q1=Q-20;Q2=2; end

  37.          //正常情況下計(jì)數(shù)
  38.   end

  39.   else if(g==0&E==0&CR1==1)
  40.   begin  Q=5'b11000;L=4'b0000;Q2=2;Q1=4;  end//復(fù)位24秒
  41.   else if(g==0&E==0&CR2==1)
  42.   begin  Q=5'b01110;L=4'b0000;Q2=2;Q1=4;  end//復(fù)位14秒
  43.   if(a==1)
  44.   begin A<=A+3'b001-k;k=1;  end
  45.   if(b==1)
  46.   begin B<=B+3'b001-k;k=1;  end
  47. end
  48. end            
  49. endmodule
復(fù)制代碼
  1. 附錄1.2(分頻時(shí)鐘信號(hào)設(shè)計(jì)):
  2. module fhz(clk1,clk2,clk3,clk);
  3. input clk;
  4. output reg clk1,clk2,clk3;
  5. reg [20:0] n=0;reg [20:0] m=0; reg[22:0] z=0;
  6. always@(posedge clk)
  7. begin
  8. if(n==599999)
  9. n=0;
  10. else
  11. n=n+1;
  12. if(n<300000)
  13. clk1=1;
  14. else
  15. clk1=0;
  16. if(z==1199999)
  17. z=0;
  18. else
  19. z=z+1;
  20. if(z<600000)
  21. clk2=1;
  22. else
  23. clk2=0;
  24. if(m==59)
  25. m=0;
  26. else
  27. m=m+1;
  28. if(m<30)
  29. clk3=1;
  30. else
  31. clk3=0;
  32. end
  33. endmodule
復(fù)制代碼
  1. 附錄1.3(位選信號(hào)設(shè)計(jì)):
  2. module decode(Q1,Q2,L,clk,E,Q);
  3. input [3:0] Q1,Q2,L;
  4. input clk;
  5. output reg [2:0] E;
  6. output reg [3:0] Q;
  7. reg [1:0] F=0;
  8. always@(posedge clk)
  9. if(F==0)
  10.    begin Q=Q1;E=2;F=1; end    //選擇小數(shù)位
  11. else if(F==1)
  12.    begin Q=Q2;E=4;F=2; end    //選擇個(gè)位
  13. else if(F==2)
  14.    begin Q=L;E=1;F=0; end        //選擇十位
  15. endmodule
復(fù)制代碼




評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:438575 發(fā)表于 2019-12-18 23:15 來自觸屏版 | 只看該作者
有沒有原理圖文件和程序文件
回復(fù)

使用道具 舉報(bào)

板凳
ID:685188 發(fā)表于 2020-1-13 21:31 | 只看該作者
有頂層代碼嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表