集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4870|回复: 10

请教高手!!!

[复制链接]
fight 发表于 2011-10-28 00:09:14 | 显示全部楼层 |阅读模式
module pulse_counter_task_logic(
        divide_clk,
        reset_n,         
        pulse_pos_input,
        pulse_neg_input,        
        pulse_result,
        pre_pulse_pos_1,
        pre_pulse_neg_1,
        
                );

        input divide_clk;                                //Input Clock to be divided
        input reset_n;                                //Reset
        input pulse_pos_input;      //input pulse positive
        input pulse_neg_input;      //input pulse negative
               
        output [7:0] pulse_result;    // output pulse counter
        output [7:0]pre_pulse_neg_1;
        output [7:0]pre_pulse_pos_1;

reg [7:0] pulse_result_r;           //output pulse counter register
reg [7:0] pre_pulse_pos;           //pulse counter temporary register
reg [7:0] pre_pulse_neg;

//clock divide Process


always @(posedge divide_clk or negedge reset_n)      
begin
        if (~reset_n)
                pulse_result_r <= 8'h0;
        else if (divide_clk)
                pulse_result_r <= pre_pulse_pos + pre_pulse_neg;
        else
            pulse_result_r <= pulse_result_r;
end

// pulse measure process
always @(negedge pulse_pos_input or posedge divide_clk or negedge reset_n)
begin
        if((~reset_n) | divide_clk )
        begin
                pre_pulse_pos <= 8'h0;    //clear the pre_pulse
        end
        else
        begin
                pre_pulse_pos <= pre_pulse_pos + 8'h1;
        end
end

always @(negedge pulse_neg_input or posedge divide_clk or negedge reset_n)
begin
        if((~reset_n) | divide_clk )
        begin
                pre_pulse_neg <= 8'h0;    //clear the pre_pulse
        end
        else
        begin
                pre_pulse_neg <= pre_pulse_neg - 8'h1;
        end
end

assign pulse_result = pulse_result_r;
//assign irq = divide_clk;
assign pre_pulse_pos_1 = pre_pulse_pos;
assign pre_pulse_neg_1 = pre_pulse_neg;

endmodule


用quartusII自带的仿真器  仿真出来的pulse_result 为什么无输出  请教高手?
是程序问题 还是仿真设置问题

收藏 分享
至芯兴洪 发表于 2011-10-28 14:13:27 | 显示全部楼层
else if (divide_clk),这个条件不对,如果你要采时钟的高电平,那你还得想其他方法采集,在本时钟的上升怎么可能猜到本时钟的高电平,当然没结果了
至芯兴洪 发表于 2011-10-28 14:19:30 | 显示全部楼层
异步复位信号的处理也有问题;
 楼主| fight 发表于 2011-11-1 16:51:29 | 显示全部楼层
回复 2# 至芯兴洪


   感谢你的回复。后两个模块调试过,没什么问题。第一个always模块中,若有posedge divide_clk ,divide_clk就为1啊?
 楼主| fight 发表于 2011-11-1 16:56:54 | 显示全部楼层
回复 4# fight


    还有就是,后面的always块中,也用posedge divide_clk敏感信号,检测divide_clk为高电平,确实起到了清零的作用啊
weifhfpgapc 发表于 2011-11-2 23:53:54 | 显示全部楼层
if (~reset_n)
“~”用的不对  , 应该用“!”
 楼主| fight 发表于 2011-11-3 10:12:00 | 显示全部楼层
回复 6# weifhfpgapc


    两者都可以吧
zhouhuaguo 发表于 2011-11-4 16:14:53 | 显示全部楼层
小伙子我怎么没有看到你的激励文件部分,你这个市一个工程文件,还要给出具体的激励部分才行,就是几假设输入条件是什么样子的。否则module不知道要给你出什么样的东西。
 楼主| fight 发表于 2011-11-4 16:54:12 | 显示全部楼层
回复 8# zhouhuaguo


   

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| fight 发表于 2011-11-4 16:55:05 | 显示全部楼层
回复 9# fight


    最终的工程框图,不知道您说的激励文件是指???
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-24 18:25 , Processed in 0.072877 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表