[問題] verilog 關於 cordic 的問題

看板Electronics作者 (阿涅!!)時間12年前 (2013/10/04 12:47), 編輯推噓8(8026)
留言34則, 7人參與, 最新討論串1/1
各位前輩好 小弟是學 Verilog + FPGA 的新手 之前練過一些題目 基本的概念和寫法都有些心得了 最近又在練習寫一些新的電路 但一開始就卡關了 = = 有兩組 input 比如說 A B 8-bit 的訊號 好了 我想要求出 把A當實部 B當虛部 他們的大小值 即 output 為 Mag = (A^2 + B^2) ^1/2 變成大小值輸出這樣 然後 之前有聽說過用 cordic block 可以直接運算 我的問題是 1. Verilog 裡面有支援這樣的語法嗎?? 我合成時是用Quartus II 然後想燒進FPGA裡面 只是我不知道這樣能不能合出來= = 2. 如果不管 cordic block 這個東西 能不能給我個方向 該怎麼用Verilog 寫出求大小值的電路 老實說我昨天一整天都在想這個 google也查了 跟cordic有關的文章也看了 結果還是一片混亂= = 煩請版上的大大救救小弟 不然今天進度又要卡了嗚嗚 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.138.176.76

10/04 13:41, , 1F
有卡才會進步囉!呵呵...雖然我不知道你在問啥
10/04 13:41, 1F

10/04 13:42, , 2F
不支援 平方的部分可以用成A*A B*B 開根號比較麻煩要自己寫
10/04 13:42, 2F

10/04 13:43, , 3F
例如用查表或者其他數學近似法來弄出來
10/04 13:43, 3F

10/04 13:46, , 4F
多謝樓上說明 我看懂了 Verilog有範圍限制
10/04 13:46, 4F

10/04 13:46, , 5F
跟妳要宣告的bits數有關係 所以要先知道 A和B的範圍在哪
10/04 13:46, 5F

10/04 13:47, , 6F
而近似的演算法 要再加上小數點的話 老實說 不好做
10/04 13:47, 6F

10/04 13:47, , 7F
要看你想近似到第幾位 那你宣告的bit數又要再多一些
10/04 13:47, 7F

10/04 13:49, , 8F
網路上可以找到很多cordic的文章啊,
10/04 13:49, 8F

10/04 13:50, , 9F
你就是把他翻成verilog就好了, 應該也有現成的
10/04 13:50, 9F

10/04 13:51, , 10F
或是你可以先用任一種程式語言寫出來,確認步驟你都搞清楚了
10/04 13:51, 10F

10/04 13:53, , 11F
再用verilog寫,最基本的作法是n個bit輸入就要n個cycle
10/04 13:53, 11F

10/04 14:37, , 12F
阿阿感謝前輩們的回覆!!
10/04 14:37, 12F

10/04 14:39, , 13F
bxxl 大 我看了cordic的文章後 還是很不解要怎麼
10/04 14:39, 13F

10/04 14:39, , 14F
用verilog 寫出來 ,所以現在方向轉成 平方後開根號
10/04 14:39, 14F

10/04 14:40, , 15F
我再去研究怎麼用verilog寫開根號!!!!
10/04 14:40, 15F

10/04 14:41, , 16F
to lovepy大 感謝你的回覆 我應該會找近似做法來用
10/04 14:41, 16F

10/04 14:42, , 17F
to sasako大 我鎖定A B在0~1之間的值 近似到小數第四位
10/04 14:42, 17F

10/04 14:43, , 18F
就好了~ 弄起來應該不會太難吧@@
10/04 14:43, 18F

10/04 15:04, , 19F
你要做這個設計,應該先去了解乘法器的電路
10/04 15:04, 19F

10/04 15:06, , 20F
verilog要寫的好,前題是:你知道你寫的語法合成出來電路是
10/04 15:06, 20F

10/04 15:06, , 21F
怎樣嗎
10/04 15:06, 21F

10/04 16:52, , 22F
位數不多 相對硬體簡單 不過你假如想寫configure width那種
10/04 16:52, 22F

10/04 16:52, , 23F
就要好好想想 ..
10/04 16:52, 23F

10/04 16:54, , 24F
第一次寫不用管gate count多少 把行為搞對 確定可以合成
10/04 16:54, 24F

10/04 16:54, , 25F
我想是第一步..
10/04 16:54, 25F

10/04 21:39, , 26F
我覺得第一步先把數位電子跟邏輯電路學好比較重要
10/04 21:39, 26F

10/04 21:41, , 27F
沒有實體的邏輯電路思想,純軟體寫出來的東西寫出來會很嚇
10/04 21:41, 27F

10/04 21:41, , 28F
10/04 21:41, 28F

10/04 21:43, , 29F
先畫出架構圖再來說..
10/04 21:43, 29F

10/04 22:28, , 30F
你可以去找computer arithmetic的書,包含各種運算及特殊函數
10/04 22:28, 30F

10/06 15:18, , 31F
其實嚇人對我來說是正常的 因為我也是這樣走過來
10/06 15:18, 31F

10/06 15:19, , 32F
程式就是多寫 一直不斷地從失敗中獲取經驗
10/06 15:19, 32F

10/06 15:40, , 33F
0~1之間的話可能要先決定是要用整數表示法還是浮點數表示法
10/06 15:40, 33F

10/06 15:41, , 34F
數字系統不一樣的話 運算作法也會不太一樣
10/06 15:41, 34F
文章代碼(AID): #1IJaXPL8 (Electronics)