打印

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

[复制链接]
1677|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
:)是呀

使用特权

评论回复
5
shell.albert| | 2012-6-4 08:41 | 只看该作者
我最近也在使用libero,感觉还行吧。microsemi就是调用人家的东东

使用特权

评论回复
6
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

粉丝