使用ACTEL的FPAG写的程序老是Synplify不过去,高手指点下!

[复制链接]
 楼主| wanda216 发表于 2012-5-13 22:42 | 显示全部楼层 |阅读模式
`timescale 1 ns / 1 ps
module counter(clk_48m,reset_n,led);
input    clk_48m;    // 系统时钟
input    reset_n;    // 系统复位信号,低电平复位
output     [7:0] led;    // 计数值输出   // 分频系数,分到2s周期,便于观察
parameter  cnt_top = 26'd48000000;  // 分频系数,分到2s周期,便于观察
reg    clk_2s;      // 分频后的时钟输出
reg     [25:0] clk_cnt;
reg     [7:0] led;
    reg     [1:0]   nstep;
always @(posedge clk_48m or negedge reset_n)     
begin
  if(!reset_n)
  begin
   clk_2s  <= 1'b0;
   clk_cnt <= 26'd0;
  end
  else if(clk_cnt == cnt_top-1'b1)
  begin
   clk_cnt <= 26'd0;
   clk_2s  <= ~clk_2s;
  end
  else
  begin
   clk_cnt <= clk_cnt + 1'b1;
   clk_2s  <= clk_2s;
  end
end
always @(posedge clk_2s or negedge reset_n)
begin
  if(!reset_n)
   led <= 8'b11110000;
        if(nstep==2'b00)       led <=8'b00010000;
        else if(nstep==2'b01)  led <=8'b00100000;
        else if(nstep==2'b10)  led <=8'b01000000;
        else if(nstep==2'b11)  led <=8'b10000000;
        nstep<=nstep+1'b1;
end
endmodule

主要实现2S流水灯,谢谢!
GoldSunMonkey 发表于 2012-5-14 10:11 | 显示全部楼层
没有过ACTEL,不敢妄自评论
csjedi 发表于 2012-6-3 15:36 | 显示全部楼层
把错误信息发上来判断一下
GoldSunMonkey 发表于 2012-6-3 16:34 | 显示全部楼层
:)是呀
shell.albert 发表于 2012-6-4 08:41 | 显示全部楼层
我最近也在使用libero,感觉还行吧。microsemi就是调用人家的东东
wehdl 发表于 2012-6-5 14:03 | 显示全部楼层
只需把下面的进程修改一下就和综合了
always @(posedge clk_2s or negedge reset_n)
begin
if(!reset_n)
    led <= 8'b11110000;
  else
     case(nstep)
           2'b00:     led <=8'b00010000;
           2'b01:     led <=8'b00100000;
           2'b10:     led <=8'b01000000;
           2'b11:     led <=8'b10000000;
        endcase
end
endmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部