在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2860|回复: 5

转眼国庆了,问题还没有解决,狠下心来贴原码求助!

[复制链接]
发表于 2006-9-30 09:32:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
我用的是Quartus II 5.0,timing仿真过了,但是function仿真过不了!!
`timescale 10ns/1ns

module capcard (we,
         nrd,               
                                addressbus,       
                                reset,               
                                CS_V1,       
                                CAPING,       
                                CAPSTR,       
                                ICLK,               
                                IDQ,       
                                IGPV,
                                IGPH
                                );

input CS_V1,CAPSTR,ICLK,IDQ,IGPH,IGPV,nrd,reset;
output CAPING,we;
output [17:0] addressbus;

wire IGPV,nrd,CS_V1;
reg we;
reg [17:0] addressbus;
reg        CAPING;
reg [2:0] state;

parameter         idle=3'b000,                        startcapflag=3'b001,        //FSM
                        wait_vstart =3'b010,        wait_vend =3'b011,
                        wait_hstart =3'b100,        wait_hend=3'b101,
                        startcaping=3'b110,                read_flag=3'b111;

initial
begin
        addressbus<=18'b00_0000_0000_0000_0000;

        we<=1;
        CAPING<=1;
        state<=idle;
end

always @ (posedge ICLK or negedge reset)
begin
        if(!reset)begin
                                we<=1;
                                CAPING<=1;
                                state<=idle;
                        end
        else
                case(state)
                idle:
                if(!CAPSTR)
                        state<=startcapflag;
                else if(!nrd)
                        state<=read_flag;
                       
                read_flag:begin
                        addressbus<=addressbus+1;
               
               
                        CAPING<=1;
                                end                       

                startcapflag:
                        if(!IGPV)begin
                                                state<=wait_vstart;
                                        end                                       
                wait_vstart:
                        if(IGPV)begin
                                                state<=wait_vend;
                                        end
                wait_vend:
                        if(!IGPH)begin
                                                state<=wait_hstart;
                                        end
                wait_hstart:
                        if(IGPH)begin
                                                state<=wait_hend;
                                end                                       
                wait_hend:
                        if(IDQ)begin
                                                state<=startcaping;
                                                                                                                                                               
                                        end
                startcaping:begin               
                                                addressbus<=addressbus+1;
                                                we<=0;
                                                CAPING<=0;
                                                if(!IGPV)begin
                                                state<=idle;
                                                CPING<=0;
                                                end
                                                else state<=startcaping;
                                        end
                default :        state<=idle;               
                endcase
end

endmodule

timing仿真

timing仿真

function仿真

function仿真
 楼主| 发表于 2006-9-30 09:38:10 | 显示全部楼层
另外为什么  系统提示: 您所在的用户组无法下载或查看附件   啊?我自己写的帖子怎么都看不到图片呢?
发表于 2006-9-30 10:26:19 | 显示全部楼层
下岗待业的是看不到附件的,多赚点钱吧。
发表于 2006-9-30 10:44:00 | 显示全部楼层

看了一下

有点建议:
1。你把用来状态转换的always和其他的几个变量赋值分开写,这样清楚许多,
      感觉we, CPIN可以用state的组合逻辑实现
2。addressbus这个信号没有被reset初始化,有可能有问题。
发表于 2006-9-30 23:20:43 | 显示全部楼层
我觉得是reset给的不对,开始的时候reset为1,初始化的状态怎么给定呢,你的FSM的开始运行应该是在reset由0变1之后,CAPSTR在reset回到1之后就一直为1,FSM应该一直处于Idle状态,你看看你的state那根bus看看状态怎么进行转移的,个人意见不知道对不对,请大家指点。

还有就是,FSM还是写成两个always的好理解也好维护一些

[ 本帖最后由 dacibao 于 2006-9-30 23:23 编辑 ]
发表于 2006-10-24 12:22:29 | 显示全部楼层
可综合代码里是不能有initial的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 10:15 , Processed in 0.022777 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表