久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1613|回復: 1
打印 上一主題 下一主題
收起左側

FPGA做的CPU指令運算器,只有加減乘,沒有除,實驗箱是DE2-115

[復制鏈接]
跳轉到指定樓層
樓主
設計一個簡單的CPU指令運算器,指令格式如下:
完成的具體功能定義如下:
(1) 操作類型1:將操作數1作為一個無符號二進制數,在七段管以十進制顯示二進制序列等效值。
(2) 操作類型2:實現操作數3、操作數4之間相加、減、乘的操作,在七段管以十/十六進制進制顯示操作數和結果。操作數3和4為BCD碼表示的2位十進制數(表示的值為00-99)。
注意:
(1) 操作類型2中,減法邏輯中出現負數,則顯示“-”,正數可以不顯示符號
(2) 操作類型2中,加、減、乘操作數和結果都用十進制顯示,可以在七段管上進行循環顯示來實現。
(3) 注意操作數3、4以BCD碼輸入,超過9的BCD碼輸出處理問題。
(4) 嘗試加法運算采用流水線方式實現。注意有效位數。
(5) 如果感覺七段管顯示能力弱,可以查詢LCD1602的控制模塊代碼,采用LCD顯示。
代碼:
  1. module zhiling(key,x2,x3,Hex0,Hex1,Hex2,Hex3,Hex4,Hex5,Hex6,Hex7,x);
  2. input [7:0] x2,x3;
  3. input key;
  4. reg[7:0] x1;
  5. input [1:0] x;//表示七段管的顯示模式
  6. output reg[6:0] Hex0,Hex1,Hex2,Hex3,Hex4,Hex5,Hex6,Hex7;
  7. reg[11:0] add;
  8. reg[7:0] sub;
  9. reg[13:0] mul;
  10. wire[7:0] n3,n2;
  11. integer flag;//符號標志位
  12. //加法變量
  13. reg cout1,cout2;
  14. reg [6:0] fh;
  15. reg [3:0] low,low0,mid,mid0;
  16. reg [3:0] a1,a2,a3,a4;//乘法各位表達
  17. reg [3:0] t1,t2,t3;//x1的值
  18. reg [3:0] s1,s2;
  19. assign n2=x2[7:4]*10+x2[3:0];
  20. assign n3=x3[7:4]*10+x3[3:0];
  21. always@(*)
  22. begin
  23.    if(key==1)
  24.         begin
  25.    x1=x2;        
  26.    t1=x1%4'b1010;
  27.         t2=x1/4'b1010%4'b1010;
  28.         t3=x1/4'b1010/4'b1010;
  29.         end
  30. end
  31. //加法,二級流水線方式
  32. always@(*)
  33. begin
  34. {cout1,low0}=x2[3:0]+x3[3:0];
  35. if(cout1==1) begin low=low0+4'b0110; end
  36. else if(low0>9&&cout1==0) begin {cout1,low}=low0+4'b0110;end
  37. else begin low=low0;cout1=0;end
  38. end
  39. always@(*)
  40. begin
  41. {cout2,mid0}=x2[7:4]+x3[7:4]+cout1;
  42. if(cout2==1) begin mid=mid0+4'b0110; end
  43. else if(mid0>9&&cout2==0) begin {cout2,mid}=mid0+4'b0110;end
  44. else begin mid=mid0;cout2=0;end
  45. add={cout2,mid,low};
  46. end
  47. //減法
  48. always@(*)
  49. begin
  50. flag=0;
  51. if(n2>=n3) sub=n2-n3;
  52. else begin flag=1;sub=n3-n2;end
  53. fh=(flag==1)?7'b0111111:7'b1111111;
  54.    s1=sub%4'b1010;  
  55.         s2=sub/4'b1010;
  56. end
  57. //乘法
  58. always@(*)
  59. begin
  60.    mul=n2*n3;
  61.    a1=mul%4'b1010;  
  62.         a2=mul/4'b1010%4'b1010;
  63.         a3=mul/4'b1010/4'b1010%4'b1010;
  64.         a4=mul/4'b1010/4'b1010/4'b1010;
  65. end

  66. always@(x)
  67. begin
  68. case(x)
  69. 2'b00:begin {Hex2,Hex1,Hex0}={show(t3),show(t2),show(t1)};Hex3=7'b1111111;Hex4=7'b1111111;Hex5=7'b1111111;Hex6=7'b1111111;Hex7=7'b1111111;end
  70. 2'b01:begin {Hex7,Hex6}={show(x2[7:4]),show(x2[3:0])};{Hex5,Hex4}={show(x3[7:4]),show(x3[3:0])};
  71.                                 {Hex2,Hex1,Hex0}={show(add[11:8]),show(add[7:4]),show(add[3:0])};Hex3=7'b1111111;  end
  72. 2'b10:begin {Hex7,Hex6}={show(x2[7:4]),show(x2[3:0])};{Hex5,Hex4}={show(x3[7:4]),show(x3[3:0])};
  73.                                 {Hex2,Hex1,Hex0}={fh,show(s2),show(s1)};Hex3=7'b1111111;  end
  74. 2'b11:begin {Hex7,Hex6}={show(x2[7:4]),show(x2[3:0])};{Hex5,Hex4}={show(x3[7:4]),show(x3[3:0])};
  75.                                 {Hex3,Hex2,Hex1,Hex0}={show(a4),show(a3),show(a2),show(a1)};  end
  76. endcase
  77. end
  78. function [6:0]show;
  79.    input[3:0] a0;
  80.         reg[6:0] b;
  81.         begin
  82.         case(a0)
  83.   4'd0:b=7'b1000000;
  84.   4'd1:b=7'b1111001;
  85.   4'd2:b=7'b0100100;
  86.   4'd3:b=7'b0110000;
  87.   4'd4:b=7'b0011001;
  88.   4'd5:b=7'b0010010;
  89.   4'd6:b=7'b0000010;
  90.   4'd7:b=7'b1111000;  
  91.   4'd8:b=7'b0000000;
  92.   4'd9:b=7'b0011000;
  93. default:b=7'b1111111;
  94.         endcase
  95.         show=b;
  96.         end
  97.         endfunction
  98. endmodule
復制代碼
乘法:
將ope撥動為”11”,實現兩個輸入之間相乘的操作,分別用四個撥動開關作為in1,in2輸入,輸出的十進制數顯示在七段管上。


加法:
將ope撥動為”01”,實現兩個輸入之間相加的操作,分別用四個撥動開關作為in1,in2輸入,輸出的十進制數顯示在七段管上。


減法:
將ope撥動為”10”,實現兩個輸入之間相減的操作,分別用四個撥動開關作為in1,in2輸入,輸出的十進制數顯示在七段管上,若結果為負數,則在前一位顯示’-’


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 涩涩导航 | 毛片免费在线 | 亚洲第一福利视频 | 亚洲综合免费 | 日韩视频一区二区 | 91精品国产91久久久久久最新 | 欧美激情黄色 | 怡红院成人在线视频 | 精品视频一区二区在线观看 | 精品国产一区二区三区久久 | 欧美激情黄色 | 免费永久av | 91久久精品日日躁夜夜躁国产 | 国产在线一区二区 | 国产精品久久久久久久免费大片 | 欧美亚洲另类丝袜综合网动图 | 国产日韩亚洲欧美 | www.日韩| 国产精品久久久久久久久久久免费看 | 久久鲁视频| 亚洲午夜三级 | 欧美日韩一区二区三区四区五区 | 日韩一区二区久久 | 国产色网 | 亚洲国产视频一区二区 | 一区二区三区四区av | 欧美精品乱码久久久久久按摩 | 国产精品国产成人国产三级 | 日韩av资源站 | 亚洲欧美综合精品久久成人 | 亚洲综合二区 | 欧美亚洲另类丝袜综合网动图 | 国产剧情一区 | 在线国产中文字幕 | 久草在线青青草 | 老外黄色一级片 | 成人av鲁丝片一区二区小说 | 亚洲综合色站 | 亚洲一区二区三区免费视频 | 久久久精品久久 | 久草视频观看 |