打印
[Actel FPGA]

新手关于Verilog HDL求助

[复制链接]
1638|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
水中鱼|  楼主 | 2009-1-20 14:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近想学CPLD,听说Verilog HDL语言相对简单,可我编了如下的程序老有错误提示,以MAX+PLUS上编译不能通过,本程序的思想是设计一个32位的计数器,通过CS来选择将32位的数据按8位输出:
`timescale 1ns/100ps
module vx(clk,rst,cs,dout);
input clk,rst;
input [1:0] cs;
output [7:0] dout;
reg [31:0] counter;


always @(posedge clk or posedge rst)
  begin
     if(rst) counter<=0;
     else 
      begin
            counter<=counter+1;
      end
  end

/*assign dout= (cs==1) ? counter[15:8]:counter[7:0];*/

always @(cs)
  begin
        case(cs)
          0 : dout[7:0]=counter[7:0];
          1 : dout[7:0]=counter[15:8];
          2 : dout[7:0]=counter[23:16];
          3 : dout[7:0]=counter[31:24];
        endcase
  end

endmodule


另如果CS只有一位,而计数器只有16位的话通过此语句assign dout= (cs==1) ? counter[15:8]:counter[7:0];可编译成功(16位计数器),我也是才学CPLD,不知道哪位大虾可指点指点,小弟感激不尽....

相关帖子

沙发
水中鱼|  楼主 | 2009-1-21 01:24 | 只看该作者

唉,终于找到原因了,把DOUT配置成寄存器输出型就通过了,

唉,终于找到原因了,把DOUT配置成寄存器输出型就通过了,

使用特权

评论回复
板凳
徐若瑄| | 2009-3-12 09:00 | 只看该作者

哦!恭喜……

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

9

帖子

0

粉丝