2724|2

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求教各位大佬 最近小弟在做基于FPGA的PPM调制系统 [复制链接]

求教各位大佬,最近在做一个基于fpga的PPM调制系统 ,结合网上的相关代码,自己写了一段代码,其中有用状态机生成的一段二维序列, 但是最后综合以后外接示波器,在示波器上却显示不出波形,不知是哪里的问题 求各位大佬解答 。

代码如下:

`timescale 1us/1us
module PPMtz(clk_in,rst_n,data_in,ppmdata,FPGA_TEST2);
input clk_in;
input rst_n;
output ppmdata;
output data_in;
output FPGA_TEST2;

reg [1:0] count;
reg [1:0] xreg;
reg [1:0] yreg;
reg data_in;
reg ppmdata;
reg q;
reg [2:0] pre_state,next_state;
wire clk_out;
clk_out    clk_out_inst (
    .inclk0 ( clk_in ),
    .c0 ( clk_out )
    );

parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101;
always @(posedge clk_out or negedge rst_n)  
        begin  
            if(!rst_n)  
                pre_state <= s0;  
            else  
                pre_state <= next_state;  
        end  
  
    always @(pre_state)  
        begin  
            case(pre_state)  
                s0:  
                    begin  
                        data_in = 1'b0;  
                        next_state <= s1;  
                    end  
                s1:  
                    begin  
                        data_in = 1'b0;  
                        next_state = s2;  
                    end  
                s2:  
                    begin  
                        data_in = 1'b1;  
                        next_state = s3;  
                    end  
                s3:  
                    begin  
                        data_in = 1'b0;  
                        next_state = s4;  
                    end  
                s4:  
                    begin  
                        data_in = 1'b1;  
                        next_state = s5;  
                    end  
                s5:  
                    begin  
                    data_in = 1'b1;  
                    next_state = s0;  
                    end  
                default: next_state = s0;  
            endcase   
        end  


always@(posedge clk_out or negedge rst_n)
if(!rst_n)
begin
count<=2'b11;
q<=0;
yreg<=0;
ppmdata<=1;
end
else
begin
if(count==2'b11)
begin
yreg<=xreg;
q<=~q;
count<=count+1;
end
else
begin
q<=~q;
count<=count+1;
end
if(yreg[0]==1'b0 && count==yreg)
begin
ppmdata<=q;
end
else if(yreg[0]==1'b1 && count==yreg)
begin
ppmdata<=~q;
end
else
ppmdata<=0;
end

always@(posedge clk_out or negedge rst_n)
if(!rst_n)
xreg<=2'b00;
else
if(count[0]==1'b1)
xreg<={xreg[0],data_in};
else
xreg<=xreg;

assign FPGA_TEST2 = clk_out;

endmodule    

其中的FPGA_TEST2是为了观看一下时钟

此帖出自FPGA/CPLD论坛

最新回复

现用modelsim之类的仿真一下啊   详情 回复 发表于 2019-12-13 00:28
点赞 关注
 

回复
举报

5979

帖子

8

TA的资源

版主

沙发
 

现用modelsim之类的仿真一下啊

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

回复

2

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
chenzhufly 发表于 2019-12-13 00:28 现用modelsim之类的仿真一下啊

仿了  波形符合需求 

此帖出自FPGA/CPLD论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表