作者deathcustom (每天都是七彩繽紛)
看板Electronics
標題Re: [問題]請問有關verilog的問題
時間Sun Nov 27 00:38:27 2005
※ 引述《newword (距離畢業的日子)》之銘言:
: 各位大大好
: 我想請問一下有關verilog語法的問題
: 就是在clock25連續送值為 1 2 3 4 5 6.... (如下圖)
: ── ── ── ──
: │ │ │ │ │ │ │ .....(clock25)
: ── ── ── ──
: 〔 1 〕〔 2 〕〔 3 〕〔 4 〕.....
: 然後要如何再每個data中間補個"0"
: 會變成
: ── ── ── ── ── ── ──
: │ │ │ │ │ │ │ │ │ │ │ │ │ .....(clock25)
: ── ── ── ── ── ── ──
: 〔 1 〕〔 0 〕〔 2 〕〔 0 〕〔 3 〕〔 0 〕〔 4 〕〔 0 〕.....
: 也就是做upsample
: 小弟再怎麼做都會把2,4,6,8...等的偶數的值給蓋掉用零取代
: 不曉得各位大大能不能幫幫我
: 謝謝大家
: --
: 我的語法
: always@(posedge clock25)
: begin
: if(clock12) //clock25除頻為clock12
: DATA_OUT=DATA_IN;
: else
: DATA_OUT=0;
: end
一般來說這應該是一個parallel input series output的component吧
input 16 lines , series output
module Upsampler( Buf_o, Feedback_o , Data_i, Up_i, clk);
//output port
output Buf_o; //output for next stage
output Feedback_o; //feed back to inform previous stage for next data
//input ports
input [15:0]Data_i;
input [2:0]Up_i;//8 level upsample rate
input clk;//clock
//registers
reg [2:0] counter;
reg [3:0] sample;
//work function
always @ (negedge clk)
if(sample == 15)
begin
feedback=1;
sample=0;
end
always @ (posedge clk)
begin
if (counter == Up_i)
begin
sample = sample + 1;
counter = 0;
Buf_o = Data_i[counter];
end
else counter = counter + 1;
end
endmodule
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.83.97
※ 編輯: deathcustom 來自: 220.135.83.97 (11/27 00:40)
※ 編輯: deathcustom 來自: 220.135.83.97 (11/27 00:44)
※ 編輯: deathcustom 來自: 220.135.83.97 (11/27 21:58)
1F:→ packet110:sample 為何正負clock都可改變呢? 11/28 23:16