回答

收藏

【MAX10初体验】PLL及闪烁LED

#其他 #其他 2662 人阅读 | 0 人回复 | 2015-01-26

、MAX10横向对比
       MAX10不叫CPLD了,因为他多了一些FPGA的特性如DSP、RAM还有高端片子才带有的ADC,虽然内置的ADC不算多高级,但12位1MHz的速度对付普通应用也绰绰有余,另外可以借助TSD采集片内温度。
                 EP4CE6(10)E22C8与10M08SAE144C8GES的对比
器件EP4CE6E22C8EP4CE10E22C810M08SAE144C8GES
内核电压1.2V1.2V3.3V
LEs6272103208064
User I/O9292101
片内RAM276480423936387020
9bit乘法器304648
PLL221
User Flash--2555904
ADC--1
TSD(测温二极管)--1
      经过对比,安全、可靠、高集成又廉价。如果max10供货得当,有理由不换么。
二、MAX10 初体验—&mdashLL及闪烁LED
        爱板网MAX10的板子,晒全家福:
           
        上程序:
        
module pll_led(input wire i_clk,input wire i_rst_n,output wire [4:0]o_led,output wire [4:0]o_clk);wire clk200;wire clk150;wire clk100;wire clk50;wire clk25;wire locked;wire rst;reg [31:0]cnt200;reg [31:0]cnt150;reg [31:0]cnt100;reg [31:0]cnt50;reg [31:0]cnt25;reg led200;reg led150;reg led100;reg led50;reg led25;pll u_pll (        .areset                (~i_rst_n),        .inclk0                (i_clk),        .c0                        (clk200),//200        .c1                        (clk150),//150        .c2                        (clk100),//100        .c3                        (clk50 ),//50        .c4                        (clk25 ),//25        .locked                (locked));assign o_clk = {clk200,clk150,clk100,clk50,clk25};assign rst = ~(i_rst_n & locked);always@(posedge clk200 or posedge rst)if(rst)        begin                cnt200 <= 32'd0;                led200 <= 1'b1;        endelse if(cnt200 == 32'd200000000)        begin                cnt200 <= 32'd1;                led200 <= ~led200;        endelse        cnt200 <= cnt200 + 32'd1;        always@(posedge clk150 or posedge rst)if(rst)        begin                cnt150 <= 32'd0;                led150 <= 1'b1;        endelse if(cnt150 == 32'd150000000)        begin                cnt150 <= 32'd1;                led150 <= ~led150;        endelse        cnt150 <= cnt150 + 32'd1;        always@(posedge clk100 or posedge rst)if(rst)        begin                cnt100 <= 32'd0;                led100 <= 1'b1;        endelse if(cnt100 == 32'd100000000)        begin                cnt100 <= 32'd1;                led100 <= ~led100;        endelse        cnt100 <= cnt100 + 32'd1;        always@(posedge clk50 or posedge rst)if(rst)        begin                cnt50 <= 32'd0;                led50 <= 1'b1;        endelse if(cnt50 == 32'd50000000)        begin                cnt50 <= 32'd1;                led50 <= ~led50;        endelse        cnt50 <= cnt50 + 32'd1;        always@(posedge clk25 or posedge rst)if(rst)        begin                cnt25 <= 32'd0;                led25 <= 1'b1;        endelse if(cnt25 == 32'd25000000)        begin                cnt25 <= 32'd1;                led25 <= ~led25;        endelse        cnt25 <= cnt25 + 32'd1;        assign o_led = {led200,led150,led100,led50,led25};endmodule        时钟及管脚约束:

#***************## Create Clock  ##***************#set_time_format -unit ns -decimal_places 3create_clock -name {in50}   -period 20.000 -waveform { 0.000 10.000 } [get_ports {i_clk}]create_clock -name {clk200} -period 5.000  -waveform { 0.000 2.500  } [get_nets {u_pll|altpll_component|auto_generated|wire_pll1_clk[0]}]create_clock -name {clk150} -period 6.666  -waveform { 0.000 3.333  } [get_nets {u_pll|altpll_component|auto_generated|wire_pll1_clk[1]}]create_clock -name {clk100} -period 10.000 -waveform { 0.000 5.000  } [get_nets {u_pll|altpll_component|auto_generated|wire_pll1_clk[2]}]create_clock -name {clk50}  -period 20.000 -waveform { 0.000 10.000 } [get_nets {u_pll|altpll_component|auto_generated|wire_pll1_clk[3]}]create_clock -name {clk25}  -period 40.000 -waveform { 0.000 20.000 } [get_nets {u_pll|altpll_component|auto_generated|wire_pll1_clk[4]}]三、个人感受:
       1.下载sof和其他altera家的fpga无差异,在转换pof格式时需要选择下载到片内flash,而mode在下载器件选择的右侧,给人的感觉就是下载器件的模式,不得不先选择器件在选择mode,但是器件内没有片内flash,找了半天,最后发现器件不用选,直接选mode,片内flash藏在了最下面。无力再吐槽……
              
        2.关于pof的下载速度(是的没看错继续吐槽userflash),太漫长了。目测EPCS的写入速度是片内flash的十几倍,没1分钟都下载不完(原装下载器,我试了我自己的下载器更慢)。虽然编程过程毕竟不影响使用,一想到后面自己的程序要读写userflash,顿时感觉不好了。同样是flash,能不能再慢点。
        3.作为一款高集成度的新片子,确实很有潜力代替cyclone的小容量市场,希望这些简单的小问题不会影响片子的投产。
后续将继续测评ADC和User Flash……
关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条