作者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