我最近在做SD卡音乐播放器,想做一个按键模块,实现播放、暂停,上下曲切换,这个程序好像无法控制,大神帮忙看下程序。
//部分控制程序
reg [10:0]cnt=0;
reg pause=0;
reg back=0;
reg next=0;
reg [32:0]temp=0;
always@(posedge en)
begin
case (cmd)
2'b00: begin pause<=0; next<=0;back<=0;end
2'b01: begin pause<=1; next<=0;back<=0;end
2'b10: begin back<=1; end
2'b11: begin next<=1; end
endcase
end
//SD卡的sec地址处理程序
always @(posedge SD_clk )
begin
if(counter==10'd1022)
read_sec<=SADDR;
else if(data_come)
begin
if(read_sec<OADDR)
begin
if(!pause)
begin
read_sec<=read_sec+1'b1; //SD卡sec地址加1
end
if(back)
begin
read_sec<=add_pre;
end
if(next)
begin
read_sec<=add_nxt;
end
if(cnt==64)
begin
add_nxt<={temp[7:0],temp[15:8],temp[23:16],temp[31:24]}+add_now;
end
else
begin
cnt<=cnt+1;
temp[31:1]<=temp[30:0];
temp[0]<=SD_dataout;
end
if(read_sec==add_nxt)
begin
cnt<=0;
add_pre<=add_now;
add_now<=add_nxt;
end
end
else
read_sec<=SADDR;
end
end
此帖出自
小平头技术问答
按键模块主要用了上升沿检测和下降沿检测,比较常见,没问题。但是整体代码问题很大。
逻辑不够清晰,模块不够分明。
部分模块的端口定义有错误。wire [3:0]signal?这是什么鬼?例化少了rst_n。led?又是什么鬼?
代码风格不统一,我仿佛看见不同的人的程序强行拼在一起。
大兄弟,个人意见,别往心里去哈 ,祝代码早日调试成功
一周热门 更多>