2865|10

15

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

紧急求助:CPLD有两个pwm输出引脚测不出信号 [复制链接]

module pwm_f2 (clk,rst,pwm1,pwm2,clk_div);
input rst;
input clk;
output reg pwm1;
output reg pwm2;
output reg clk_div;

reg[19:0]cnt;
always@(posedge clk or negedge rst)
        if(!rst) cnt<=20'd0;
        else if (cnt<20'd999999)
        cnt<=cnt+1'b1;
        else cnt<=20'd0;


//////////////////////
reg[19:0]cnt0;
always@(posedge clk or negedge rst)
        if(!rst) cnt0<=20'd0;
        else if(cnt0<20'd10000)cnt0<=cnt0+1'b1;
        else cnt0<=20'd0;
       
always@(posedge clk or negedge rst)
        if(!rst) clk_div<=1'b0;
        else if(cnt0==10000)clk_div<=~clk_div;
        else clk_div<=clk_div;


//shield the shake and check the posedge and negedge
//pwm1,pwm2
reg[9:0] keyr;
always@(posedge clk or negedge rst)//convention!!!sensitive language, if signal can match the quest after always@,then the language can be compiled
        if(!rst) keyr<=4'b1111111111; //when !rst,then the number can be delivered
        else keyr<={keyr[8:0],clk_div};//from low number to high
wire key_pos=keyr[0]&~keyr[9];//in the reg[3:0] they are all the key
wire key_neg=~keyr[0]&keyr[9];


reg[1:0] state;       
always@(posedge clk or negedge rst)
begin
if(!rst)
  begin
   state=2'b00; // the state that indicate no posedge and also no negedge
  end
else
  begin
    if(key_pos)
           begin
        state=2'b01; // posedge of pwm_h
                end
    else if(key_neg)
      begin
        state=2'b10; // negedge of pwm_h
      end
  end
end       




reg HL;
always@(posedge clk or negedge rst)       
if(!rst) HL<=1'b0;
else if(state==2'b01)HL<=1'b1;
else if(state==2'b10)HL<=1'b0;

////////////////////////////////////////////

reg[19:0] dead_cnt;
always@( clk or  rst)//posedge  negedge
begin
if(!rst)
  begin
    dead_cnt<=20'd0; //deadtime=Dtime+1'b1;
    pwm1<=1;
    pwm2<=1;
  end
else
  begin
    if(HL)
           begin
                 if(dead_cnt==200)  // if cnt== MAX
                   begin dead_cnt<=dead_cnt; pwm1<=1'b1;pwm2<=1'b0;end
                 else
                   begin dead_cnt<=dead_cnt+1'b1; pwm1<=1'b0;pwm2<=1'b0;end
                end
         else if(!HL)
      begin
                  if(dead_cnt==0)       // if cnt== MIN
                    begin dead_cnt<=dead_cnt; pwm1<=1'b0;pwm2<=1'b1; end
             else
                    begin dead_cnt<=dead_cnt-1'b1;pwm1<=1'b0;pwm2<=1'b0; end                  
      end
//         else
//      begin dead_cnt<=dead_cnt; end       
/*    if(dead_cnt==200) // the lines below this line give the logical of the output pwm
      begin
                 pwm1<=1;
                 pwm2<=0;
       
      end
         else if(dead_cnt==0)
           begin
                 pwm1<=0;
                 pwm2<=1;
                end
         else if( (dead_cnt>0) && (dead_cnt<200) )       
       begin
                  pwm1<=0;
                  pwm2<=0;
       end                                 */
  end
end
endmodule
程序仿真没有问题的,但是clk_div可以测出,pwm1,pwm2没有信号输出
此帖出自FPGA/CPLD论坛

最新回复

我觉得你还是在前面用文字描述一下,你需要实现的功能,大致步骤,什么问题。直接拿一段程序,让别人怎么看啊  详情 回复 发表于 2015-1-17 15:19
点赞 关注
 

回复
举报

15

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
自己顶顶
此帖出自FPGA/CPLD论坛
 
 

回复

15

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
求解答
此帖出自FPGA/CPLD论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(初级)

4
 
此帖出自FPGA/CPLD论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(初级)

5
 
等大师
此帖出自FPGA/CPLD论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(初级)

6
 
看到的朋友给顶下吧
此帖出自FPGA/CPLD论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(初级)

7
 
该怎么解决啊    困惑好久了
此帖出自FPGA/CPLD论坛
 
 
 

回复

4

帖子

1

TA的资源

一粒金砂(初级)

8
 
你编译的时候出现警告没?
此帖出自FPGA/CPLD论坛
 
 
 

回复

4

帖子

1

TA的资源

一粒金砂(初级)

9
 
如果编译出现问题了得设置一下管脚把
此帖出自FPGA/CPLD论坛
 
 
 

回复

5979

帖子

8

TA的资源

版主

10
 
仿真一下呗
此帖出自FPGA/CPLD论坛
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 
 

回复

156

帖子

0

TA的资源

一粒金砂(中级)

11
 
我觉得你还是在前面用文字描述一下,你需要实现的功能,大致步骤,什么问题。直接拿一段程序,让别人怎么看啊
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表