Re: [問題]請教各位前輩Verilog在I/O方面的技巧
※ 引述《Faberge (就好像 可以擰出淚水一樣)》之銘言:
: ※ 引述《MasterChang (我愛ASM)》之銘言:
: : F(x) = sin(2*pi*f*t)
: : f是你想產生的頻率,t是時間,通常f*t就是你的sin table的
: : index,不過F(x)會在-1到1間變化,對數位訊號不太匹配。
: : 假設你的數位輸出/入是8 bits,那就把信號調整在0~255間變
: : 化那中心就是127.5
: : F(x) = 127.5*sin(2*pi*f*t)+127.5 ,用這去建sin table,
: : 得到的值四捨五入變成整數。
: : 比如說你的table長度是1000點,每次輸出的時間間隔是1us,
: : 那一個波的週期就是1ms,頻率就是1K ,這個應該用心算就算
: : 了出來了...XD
x(t) = sin(2*pi*f*t)
t = n*Ts = n/fs
=> x[n] = sin(2*pi*f*n*Ts) = sin(2*pi*f/fs*n), n=0,1,2,...
基本上 f 是想輸出的頻率, fs 則是取樣率, 當然還得符合取樣定理
所以在你下面的程式裡面 i 就是式子裡的 f/fs 也可以說是你 table 的 phase
: : 我是用Excel這類幫你算,聽說有些IDE很厲害有這類建表的工具...
: : 1.這要看你用的模擬軟體。
: : 2.如果你是用FPGA,最好直接在硬體上驗證。
以前小弟我都是用 MATLAB 來建 table, 例如
x = 2^9 * round( sin(2*pi*f/fs.*[0:N-1]) );
: 自己來回答自己一下 經過MasterChang的指點以後我用EXCEL做了一個Sine Wave的ROM
: 然後再加上一個CLK去控制他的輸入時間
: 把Sine的值向上拉成0~2之間的旋波 在乘上2^9倍 順便把這個值round
: 變成一個10bit的integer訊號 之後只要調整自己的輸入時間
: 就可以讓input的時間跟他的時間頻率不同 造成不同的sampling value
: 但是缺點是他不能算我在bit與bit之間的值 所以要用倍數頻率來sampling
: 模型如下
: module rom (data_out, clock);
: input clock;
: output [15:0] data_out;
: reg [15:0] data_out;
: integer [9:0] i;
: initial
: begin i=0; end
: always @ (posedge clock)
: begin
: case (i)
: 9'd0 : begin data_out = 512; i=i+1; end
: 9'd1 : begin data_out = 521; i=i+1; end
: 9'd2 : begin data_out = 530; i=i+1; end
: 9'd3 : begin data_out = 539; i=i+1; end
: 9'd4 : begin data_out = 548; i=i+1; end
: :
: :
: :
: 9'd356 : begin data_out = 476; i=i+1; end
: 9'd357 : begin data_out = 485; i=i+1; end
: 9'd358 : begin data_out = 494; i=i+1; end
: 9'd359 : begin data_out = 503; i=0; end
: endcase
: end
: endmodule
: 實在是一個很土法煉鋼的方法,但是可以保證在輸出的時候會得到順利的Sine Wave波形
不是很懂你的 "只要調整自己的輸入時間 就可以讓input的時間跟他的時間頻率不同
造成不同的sampling value"
提供一點小小淺見, 有錯請鞭小力點 ^^"
把程式內部的 i 改為當作你的 input phase
這樣在程式外部只需控制好 phase 就可以改變你的輸出頻率
: 我有在網路上看到用演算法去求出兩個整數角度之間的值,如果成功的話再丟上來做參考
: 現在想另外請問的是 小弟用的是VCS6.0.1的軟體 還有VerSim可以看每個時間的狀態
: 但是很想把輸出的值對到excel上
: 不知道有沒有這樣的指令可以讓小弟做到輸出成excel的指令?
: 又要麻煩各位前輩了! 肛溫啊!! orz!
輸入角度求出三角函數的方法, 可以找找 CORDIC 演算法 (他不只可以求三角函數 @@)
另外, verilog 有提供 text I/O 的 function... 提供參考
至於輸出成 excel 小弟就不是很瞭了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.162.77.59
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):