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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

cordic算法詳細Verilog的代碼

[復制鏈接]
跳轉到指定樓層
樓主
cordic算法的詳細代碼,包括tb代碼


源程序如下:
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. // Design Name:
  6. // Module Name:    Cordic
  7. // Project Name:
  8. // Target Devices:
  9. // Tool versions:
  10. // Description:
  11. //
  12. // Dependencies:
  13. //
  14. // Revision:
  15. // Revision 0.01 - File Created
  16. // Additional Comments:
  17. //
  18. //////////////////////////////////////////////////////////////////////////////////

  19. module Cordic(clk, phi, cos, sin);
  20.         parameter W = 10,W_Z = 11;
  21.         parameter PIPELINE=10;
  22.    input clk;
  23.    input [W_Z-1:0] phi;
  24.    output[W-1:0] cos,sin;
  25.        
  26.         reg [W-1:0] cos,sin;
  27.         reg [W-1:0] x[10:0],y[10:0];
  28.         reg [W_Z-1:0] z[9:0];
  29.         reg  sign[PIPELINE:0];
  30.         integer i;
  31.        
  32.         always @(posedge clk)
  33.         begin
  34.                 x[0] <= 10'h137; // 修正CORDIC算法的比例因子,An的倒數
  35.                 y[0] <= 10'h00;       
  36.                 z[0] <= phi;
  37.                 // 旋轉45度
  38.                 if(z[0][W_Z-1]) begin
  39.                         x[1] <= x[0] + y[0];       
  40.                         y[1] <= y[0] - x[0];       
  41.                         z[1] <= z[0] + 11'h192;
  42.                 end
  43.       else begin
  44.                         x[1] <= x[0] - y[0];       
  45.                         y[1] <= y[0] + x[0];       
  46.                         z[1] <= z[0] - 11'h192;
  47.                 end
  48.                 // 旋轉26.57度
  49.                 if(z[1][W_Z-1]) begin
  50.                         x[2] <= x[1] + {{1{y[1][W-1]}}, y[1][W-1:1]};
  51.                         y[2] <= y[1] - {{1{x[1][W-1]}}, x[1][W-1:1]};
  52.                         z[2] <= z[1] + 11'hF1;
  53.                 end
  54.                 else begin
  55.                         x[2] <= x[1] - {{1{y[1][W-1]}}, y[1][W-1:1]};
  56.                         y[2] <= y[1] + {{1{x[1][W-1]}}, x[1][W-1:1]};
  57.                         z[2] <= z[1] - 11'hF1;
  58.                 end
  59.                 // 旋轉14.04度
  60.                 if(z[2][W_Z-1]) begin
  61.                         x[3] <= x[2] + {{2{y[2][W-1]}}, y[2][W-1:2]};
  62.                         y[3] <= y[2] - {{2{x[2][W-1]}}, x[2][W-1:2]};
  63.                         z[3] <= z[2] + 11'h80;
  64.                 end
  65.                 else begin
  66.                         x[3] <= x[2] - {{2{y[2][W-1]}}, y[2][W-1:2]};
  67.                         y[3] <= y[2] + {{2{x[2][W-1]}}, x[2][W-1:2]};
  68.                         z[3] <= z[2] - 11'h80;
  69.                 end
  70.                 // 旋轉7.13度
  71.                 if(z[3][W_Z-1]) begin
  72.                         x[4] <= x[3] + {{3{y[3][W-1]}}, y[3][W-1:3]};
  73.                         y[4] <= y[3] - {{3{x[3][W-1]}}, x[3][W-1:3]};
  74.                         z[4] <= z[3] + 11'h40;
  75.                 end
  76.                 else begin
  77.                         x[4] <= x[3] - {{3{y[3][W-1]}}, y[3][W-1:3]};
  78.                         y[4] <= y[3] + {{3{x[3][W-1]}}, x[3][W-1:3]};
  79.                         z[4] <= z[3] - 11'h40;
  80.                 end
  81.                 // 旋轉3.58度
  82.                 if(z[4][W_Z-1]) begin
  83.                         x[5] <= x[4] + {{4{y[4][W-1]}}, y[4][W-1:4]};
  84.                         y[5] <= y[4] - {{4{x[4][W-1]}}, x[4][W-1:4]};
  85.                         z[5] <= z[4] + 11'h20;
  86.                 end
  87.                 else begin
  88.                         x[5] <= x[4] - {{4{y[4][W-1]}}, y[4][W-1:4]};
  89.                         y[5] <= y[4] + {{4{x[4][W-1]}}, x[4][W-1:4]};
  90.                         z[5] <= z[4] - 11'h20;
  91.                 end
  92.                 // 旋轉1.79度
  93.                 if(z[5][W_Z-1]) begin
  94.                         x[6] <= x[5] + {{5{y[5][W-1]}}, y[5][W-1:5]};
  95.                         y[6] <= y[5] - {{5{x[5][W-1]}}, x[5][W-1:5]};
  96.                         z[6] <= z[5] + 11'h10;
  97.                 end
  98.                 else begin
  99.                         x[6] <= x[5] - {{5{y[5][W-1]}}, y[5][W-1:5]};
  100.                         y[6] <= y[5] + {{5{x[5][W-1]}}, x[5][W-1:5]};
  101.                         z[6] <= z[5] - 11'h10;
  102.                 end
  103.                 // 旋轉0.90度
  104.                 if(z[6][W_Z-1]) begin
  105.                         x[7] <= x[6] + {{6{y[6][W-1]}}, y[6][W-1:6]};
  106.                         y[7] <= y[6] - {{6{x[6][W-1]}}, x[6][W-1:6]};
  107.                         z[7] <= z[6] + 11'h8;
  108.                 end
  109.                 else begin
  110.                         x[7] <= x[6] - {{6{y[6][W-1]}}, y[6][W-1:6]};
  111.                         y[7] <= y[6] + {{6{x[6][W-1]}}, x[6][W-1:6]};
  112.                         z[7] <= z[6] - 11'h8;
  113.                 end
  114.                 // 旋轉0.45度
  115.                 if(z[7][W_Z-1]) begin
  116.                         x[8] <= x[7] + {{7{y[7][W-1]}}, y[7][W-1:7]};
  117.                         y[8] <= y[7] - {{7{x[7][W-1]}}, x[7][W-1:7]};
  118.                         z[8] <= z[7] + 11'h4;
  119.                 end
  120.                 else begin
  121.                         x[8] <= x[7] - {{7{y[7][W-1]}}, y[7][W-1:7]};
  122.                         y[8] <= y[7] + {{7{x[7][W-1]}}, x[7][W-1:7]};
  123.                         z[8] <= z[7] - 11'h4;
  124.                 end
  125.                 // 旋轉0.22度
  126.                 if(z[8][W_Z-1]) begin
  127.                         x[9] <= x[8] + {{8{y[8][W-1]}}, y[8][W-1:8]};
  128.                         y[9] <= y[8] - {{8{x[8][W-1]}}, x[8][W-1:8]};
  129.                         z[9] <= z[8] + 11'h2;
  130.                 end
  131.                 else begin
  132.                         x[9] <= x[8] - {{8{y[8][W-1]}}, y[8][W-1:8]};
  133.                         y[9] <= y[8] + {{8{x[8][W-1]}}, x[8][W-1:8]};
  134.                         z[9] <= z[8] - 11'h2;
  135.                 end
  136.                 // 旋轉0.11度
  137.            if(z[9][W_Z-1])
  138.                 begin
  139.                         x[10] <= x[9] + {{9{y[9][W-1]}}, y[9][W-1:9]};
  140.                         y[10] <= y[9] - {{9{x[9][W-1]}}, x[9][W-1:9]};
  141.                 //        z[10] <= z[9] + 11'h1;
  142.                 end
  143.                 else begin
  144.                         x[10] <= x[9] - {{9{y[9][W-1]}}, y[9][W-1:9]};
  145.                         y[10] <= y[9] + {{9{x[9][W-1]}}, x[9][W-1:9]};
  146.                 //        z[10] <= z[9] - 11'h1;
  147.                 end

  148.        
  149.                        
  150.                 cos <= x[10][9]?~x[10]:x[10];
  151.                 sin <= sign[PIPELINE]? ~(y[10][9]?~y[10]:y[10]) + 1 : y[10][9]?~y[10]:y[10];
  152.         end
  153.        
  154.         always @(posedge clk)
  155.                 begin
  156.                   for(i=0;i<PIPELINE;i=i+1)
  157.          sign[i+1] <= sign[i];
  158.                 sign[0] <= phi[W_Z-1];
  159.                 end
  160.        
  161. endmodule
復制代碼

所有資料51hei提供下載:
7660161.zip (1.36 MB, 下載次數: 17)

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩在线成人 | 99精品在线观看 | 91夜夜夜 | 欧美精品一区免费 | 看真人视频一级毛片 | 福利社午夜影院 | 天堂素人约啪 | 日韩成人精品视频 | 人人亚洲| 一区二区三区四区在线 | 国产精品激情小视频 | 欧美日韩精品中文字幕 | 国产精品电影在线观看 | 免费观看一级毛片 | 国产91在线 | 中日 | 亚洲国产成人精品女人久久久 | 国产精品亚洲综合 | 欧美一级黄带 | 久久久久久av | 偷拍亚洲色图 | 亚洲一区在线播放 | 超碰在线免费公开 | 久草成人 | 精品国产伦一区二区三区观看说明 | www.99热.com | 黑色丝袜三级在线播放 | 日韩在线视频一区 | 国产精品久久久久久高潮 | 久久88 | 91动漫在线观看 | 国产一区在线看 | 黄色一级片在线播放 | 久久激情视频 | 中文字幕成人av | 97综合在线| 99视频免费 | 蜜桃免费一区二区三区 | 精品一区二区三区在线播放 | www.狠狠干| 欧美在线a| 精品一区欧美 |