作者logFM3798 (阿涅!!)
看板Electronics
標題[問題] verilog 關於 cordic 的問題
時間Fri Oct 4 12:47:19 2013
各位前輩好 小弟是學 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
1F:→ sasako:有卡才會進步囉!呵呵...雖然我不知道你在問啥 10/04 13:41
2F:→ lovepy:不支援 平方的部分可以用成A*A B*B 開根號比較麻煩要自己寫 10/04 13:42
3F:→ lovepy:例如用查表或者其他數學近似法來弄出來 10/04 13:43
4F:推 sasako:多謝樓上說明 我看懂了 Verilog有範圍限制 10/04 13:46
5F:→ sasako:跟妳要宣告的bits數有關係 所以要先知道 A和B的範圍在哪 10/04 13:46
6F:→ sasako:而近似的演算法 要再加上小數點的話 老實說 不好做 10/04 13:47
7F:→ sasako:要看你想近似到第幾位 那你宣告的bit數又要再多一些 10/04 13:47
8F:推 bxxl:網路上可以找到很多cordic的文章啊, 10/04 13:49
9F:→ bxxl:你就是把他翻成verilog就好了, 應該也有現成的 10/04 13:50
10F:→ bxxl:或是你可以先用任一種程式語言寫出來,確認步驟你都搞清楚了 10/04 13:51
11F:→ bxxl:再用verilog寫,最基本的作法是n個bit輸入就要n個cycle 10/04 13:53
12F:→ logFM3798:阿阿感謝前輩們的回覆!! 10/04 14:37
13F:→ logFM3798:bxxl 大 我看了cordic的文章後 還是很不解要怎麼 10/04 14:39
14F:→ logFM3798:用verilog 寫出來 ,所以現在方向轉成 平方後開根號 10/04 14:39
15F:→ logFM3798:我再去研究怎麼用verilog寫開根號!!!! 10/04 14:40
16F:→ logFM3798:to lovepy大 感謝你的回覆 我應該會找近似做法來用 10/04 14:41
17F:→ logFM3798:to sasako大 我鎖定A B在0~1之間的值 近似到小數第四位 10/04 14:42
18F:→ logFM3798:就好了~ 弄起來應該不會太難吧@@ 10/04 14:43
19F:推 dasala:你要做這個設計,應該先去了解乘法器的電路 10/04 15:04
20F:→ dasala:verilog要寫的好,前題是:你知道你寫的語法合成出來電路是 10/04 15:06
21F:→ dasala:怎樣嗎 10/04 15:06
22F:推 sasako:位數不多 相對硬體簡單 不過你假如想寫configure width那種 10/04 16:52
23F:→ sasako:就要好好想想 .. 10/04 16:52
24F:→ sasako:第一次寫不用管gate count多少 把行為搞對 確定可以合成 10/04 16:54
25F:→ sasako:我想是第一步.. 10/04 16:54
26F:推 luckyBF:我覺得第一步先把數位電子跟邏輯電路學好比較重要 10/04 21:39
27F:推 luckyBF:沒有實體的邏輯電路思想,純軟體寫出來的東西寫出來會很嚇 10/04 21:41
28F:→ luckyBF:人 10/04 21:41
29F:推 tkhan:先畫出架構圖再來說.. 10/04 21:43
30F:推 bxxl:你可以去找computer arithmetic的書,包含各種運算及特殊函數 10/04 22:28
31F:→ sasako:其實嚇人對我來說是正常的 因為我也是這樣走過來 10/06 15:18
32F:→ sasako:程式就是多寫 一直不斷地從失敗中獲取經驗 10/06 15:19
33F:→ lovepy:0~1之間的話可能要先決定是要用整數表示法還是浮點數表示法 10/06 15:40
34F:→ lovepy:數字系統不一樣的話 運算作法也會不太一樣 10/06 15:41