返回该小组首页 回复主题
ts6969

ts6969

小组等级:     E币:184  (E币换礼)

#1楼主:请较各位高手

文章发表于:2008-03-14 05:09

我想做一个计数器

module counter (clk,cs,reset,din,pulse,start)

endmodule 

 

其中clk时钟 cs片选信号,低电平有效,reset复位信号 ,低电平有效;

start计数开始;当计数到 din时   pulse翻转

用veriloghdl要怎么实现

      【回复】

wwh_nuaa

   小组等级:    E币:506  (E币换礼)

#2

文章发表于:2008-03-15 10:23

版主叫我们 要-------授人以渔。

呵呵,很简单的,自己想想,看看Verilog语法

ts6969

   小组等级:    E币:184  (E币换礼)

#3

文章发表于:2008-03-16 13:39

module counter (clk,cs,reset,din,pulse,start)
input clk,cs,reset,start;
input [7:0]din;
output pulse;
reg pulse;
reg counter;
always@(posedge clk or posedge reset or posedge start)
if(!cs)
pulse = 0;
//counter = 0;
else if(reset)
counter = 0;
pulse = 0;
else if(start)
begin
counter = 0;
counter <= counter+1;
if(counter < din)
pulse = 0;
else
counter = 0;
pulse = 1;
end
endmodule 

 

综合的时候显示语法错误 ,请教高手

riple

   小组等级:    E币:1992  (E币换礼)

#4

文章发表于:2008-03-17 09:06

把错误和警告传上来吧。

ts6969

   小组等级:    E币:184  (E币换礼)

#5

文章发表于:2008-03-17 14:44

module counter3(clk,cs,reset,din,pulse);
input clk,cs,reset;
input [7:0]din;
output pulse ;
reg pulse;
reg [7:0]count;

always@(posedge clk)
begin
if(!cs)
 begin
 pulse <= 0;
 count <= 0;
 end
else if(!reset)
 begin
 pulse <= 0;
 count <= 0;
 end
else    
 begin
 if(count <= din)
  begin
  pulse = 1;
  count <= count + 1;
  end
 else
  begin
  pulse <= 0;
  count <= 0;
  end
 end
end
endmodule
这是我刚刚写好的程序 ,已经可以正常实现功能了 

上个程序主要的问题是if-else的条件分支语句没有加begin_end;还是语法上的错误

谢谢各位了

 

 

Neddy

   小组等级:    E币:258  (E币换礼)

#6

文章发表于:2008-04-22 21:24

没语法上的错误啊!

总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

浏览该小组的用户还看过...

设计资源与分销

";