查看: 1831|回复: 0

【MAX10初体验】PLL及闪烁LED

[复制链接]
  • TA的每日心情
    奋斗
    2015-1-31 21:47
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2015-1-26 09:24: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……
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 21:54 , Processed in 0.112256 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.