#1楼主:请较各位高手
文章发表于:2008-03-14 05:09
我想做一个计数器
module counter (clk,cs,reset,din,pulse,start)
endmodule
其中clk时钟 cs片选信号,低电平有效,reset复位信号 ,低电平有效;
start计数开始;当计数到 din时 pulse翻转
用veriloghdl要怎么实现
#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
综合的时候显示语法错误 ,请教高手
#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;还是语法上的错误
谢谢各位了