[問題] 有關FPGA LVDS輸出相關問題~??

看板Electronics作者 (better than Mr.Ja)時間16年前 (2009/05/28 23:01), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
我又有問題要發問了 我FPGA外部有外接四顆LD driver IC (MAX3656) 與FPGA的interface為LVDS 我在弄一個實驗平台 會同步對此四顆LD driver丟data 我是以多工器的方式來丟data 以PLL來倍頻使用 但PLL最高只能倍到420MHz 我是想請問一下... 還有哪種方式能提高我的輸出頻率~??? 感謝 FAE是有丟給我一份文件 http://www.latticesemi.com/documents/rd1030.pdf 目前正在K~ ================<Coding 如下>======================= (data都是自己定義的~非通訊使用~) module pawm_driver(clk, rst, ldout_1, ldout_2, ldout_3, ldout_4, clk_i ); input clk, rst; output ldout_1 ; output ldout_2 ; output ldout_3 ; output ldout_4 ; reg ldout_1 ; reg ldout_2 ; reg ldout_3 ; reg ldout_4 ; reg[6:0] con; /////////////////////// Test ////////////////////////////////// reg clk_i; output clk_i; /////////////////////// Call PLL ////////////////////////////// PLL_0513 PLL_0513_inst( .CLK(clk), .CLKOP(clk_i), .LOCK()); /////////////////////// counter /////////////////////////////// always@(posedge clk_i or posedge rst) begin if(rst) con <= 0; else if(con == 17 ) con <= 0 ; else con <= con + 1; end //////////////////// Driver 1 setup ////////////////////// always @ ( con ) begin case ( con ) 6'd1 : ldout_1 =1 ; 6'd2 : ldout_1 =0 ; 6'd3 : ldout_1 =1 ; 6'd4 : ldout_1 =0 ; 6'd5 : ldout_1 =1 ; 6'd6 : ldout_1 =0 ; 6'd7 : ldout_1 =1 ; 6'd8 : ldout_1 =0 ; 6'd9 : ldout_1 =1 ; 6'd10 : ldout_1 =0 ; 6'd11 : ldout_1 =1 ; 6'd12 : ldout_1 =0 ; 6'd13 : ldout_1 =1 ; 6'd14 : ldout_1 =0 ; 6'd15 : ldout_1 =1 ; 6'd16 : ldout_1 =0 ; 6'd17 : ldout_1 =1 ; 6'd18 : ldout_1 =0 ; 6'd19 : ldout_1 =1 ; 6'd20 : ldout_1 =0 ; 6'd21 : ldout_1 =1 ; 6'd22 : ldout_1 =0 ; 6'd23 : ldout_1 =1 ; 6'd24 : ldout_1 =0 ; 6'd25 : ldout_1 =1 ; 6'd26 : ldout_1 =0 ; 6'd27 : ldout_1 =1 ; 6'd28 : ldout_1 =0; 6'd29 : ldout_1 =1 ; 6'd30 : ldout_1 =0 ; 6'd31 : ldout_1 =1 ; 6'd32 : ldout_1 =0 ; 6'd33 : ldout_1 =1 ; 6'd34 : ldout_1 =0 ; default : ldout_1 =0 ; endcase end //////////////////// Driver 2 setup ////////////////////// always @ ( con ) begin case ( con ) 6'd1 : ldout_2 =0 ; 6'd2 : ldout_2 =1 ; 6'd3 : ldout_2 =0 ; 6'd4 : ldout_2 =1 ; 6'd5 : ldout_2 =0 ; 6'd6 : ldout_2 =1 ; 6'd7 : ldout_2 =0 ; 6'd8 : ldout_2 =1 ; 6'd9 : ldout_2 =0 ; 6'd10 : ldout_2 =1 ; 6'd11 : ldout_2 =0 ; 6'd12 : ldout_2 =1 ; 6'd13 : ldout_2 =0 ; 6'd14 : ldout_2 =1 ; 6'd15 : ldout_2 =0 ; 6'd16 : ldout_2 =1 ; 6'd17 : ldout_2 =0 ; 6'd18 : ldout_2 =1 ; 6'd19 : ldout_2 =0 ; 6'd20 : ldout_2 = 1; 6'd21 : ldout_2 = 0; 6'd22 : ldout_2 = 1; 6'd23 : ldout_2 = 0; 6'd24 : ldout_2 =1 ; 6'd25 : ldout_2 =0 ; 6'd26 : ldout_2 =1 ; 6'd27 : ldout_2 = 0; 6'd28 : ldout_2 = 1; 6'd29 : ldout_2 = 0; 6'd30 : ldout_2 =1 ; 6'd31 : ldout_2 =0 ; 6'd32 : ldout_2 =1 ; 6'd33 : ldout_2 = 0; 6'd34 : ldout_2 =1 ; default : ldout_2 =0 ; endcase end //////////////////// Driver 3 setup ////////////////////// always @ ( con ) begin case ( con ) 6'd1 : ldout_3 =0 ; 6'd2 : ldout_3 =1 ; 6'd3 : ldout_3 = 0; 6'd4 : ldout_3 =1 ; 6'd5 : ldout_3 = 0; 6'd6 : ldout_3 = 1; 6'd7 : ldout_3 =0 ; 6'd8 : ldout_3 = 1; 6'd9 : ldout_3 = 0; 6'd10 : ldout_3 = 1; 6'd11 : ldout_3 =0 ; 6'd12 : ldout_3 = 1; 6'd13 : ldout_3 =0 ; 6'd14 : ldout_3 =1 ; 6'd15 : ldout_3 =0 ; 6'd16 : ldout_3 =1 ; 6'd17 : ldout_3 = 0; 6'd18 : ldout_3 = 1; 6'd19 : ldout_3 = 0; 6'd20 : ldout_3 =1 ; 6'd21 : ldout_3 = 0; 6'd22 : ldout_3 = 1; 6'd23 : ldout_3 =0 ; 6'd24 : ldout_3 = 1; 6'd25 : ldout_3 = 0; 6'd26 : ldout_3 =1 ; 6'd27 : ldout_3 =0 ; 6'd28 : ldout_3 = 1; 6'd29 : ldout_3 =0 ; 6'd30 : ldout_3 =1 ; 6'd31 : ldout_3 = 0; 6'd32 : ldout_3 = 1; 6'd33 : ldout_3 = 0; 6'd34 : ldout_3 = 1; default : ldout_3 =0 ; endcase end //////////////////// Driver 4 setup ////////////////////// always @ ( con ) begin case ( con ) 6'd1 : ldout_4 =0 ; 6'd2 : ldout_4 = 0; 6'd3 : ldout_4 = 1; 6'd4 : ldout_4 =0 ; 6'd5 : ldout_4 =1 ; 6'd6 : ldout_4 =0 ; 6'd7 : ldout_4 =1 ; 6'd8 : ldout_4 =0 ; 6'd9 : ldout_4 = 1; 6'd10 : ldout_4 = 0; 6'd11 : ldout_4 =1 ; 6'd12 : ldout_4 = 0; 6'd13 : ldout_4 =1 ; 6'd14 : ldout_4 = 0; 6'd15 : ldout_4 =1 ; 6'd16 : ldout_4 = 0; 6'd17 : ldout_4 = 1; 6'd18 : ldout_4 = 0; 6'd19 : ldout_4 =1 ; 6'd20 : ldout_4 = 0; 6'd21 : ldout_4 =1 ; 6'd22 : ldout_4 = 0; 6'd23 : ldout_4 =1 ; 6'd24 : ldout_4 = 0; 6'd25 : ldout_4 =1 ; 6'd26 : ldout_4 =0 ; 6'd27 : ldout_4 = 1; 6'd28 : ldout_4 =0 ; 6'd29 : ldout_4 =1 ; 6'd30 : ldout_4 = 0; 6'd31 : ldout_4= 1; 6'd32 : ldout_4 =0 ; 6'd33 : ldout_4 = 1; 6'd34 : ldout_4 = 0; default : ldout_4 = 0; endcase end /////////////////////////////////////////////////////////////////// endmodule -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.18.23

05/30 07:31, , 1F
先看你FPGA的規格是否能輸出到你要的頻率?
05/30 07:31, 1F

05/30 09:53, , 2F
FPGA內部PLL倍頻最高只到420MHz
05/30 09:53, 2F

05/30 09:54, , 3F
但她的LVDS IO可以支援到800M
05/30 09:54, 3F
文章代碼(AID): #1A7gT0Dq (Electronics)