登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

请问各位,timing仿真过了,但是functional仿真没有过

作者:cgf1981 栏目:EDA技术
请问各位,timing仿真过了,但是functional仿真没有过
`timescale 10ns/1ns

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

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'b1;
    CAPING<=1'b1;
    state<=idle;
end

always @ (posedge ICLK or negedge reset)// or negedge CAPSTR or negedge nrd
begin
    if(!reset)begin
            we<=1;
            CAPING<=1'b1;
            state<=idle;
        end
    else
    case(state)
        idle:
        if(!CAPSTR)
            state<=startcapflag;
        else if(!nrd)
            state<=read_flag;
            
        read_flag:begin
            addressbus<=addressbus+18'b00_0000_0000_0000_0001;
        //    if(addressbus==18'b10_0000_0000_0000_0000)state<=idle;
        //    else state<=read_flag;
            CAPING<=1'b1;    
                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;
                        //addressbus<=addressbus+1;                                                        
                    end
        startcaping:begin        
                        addressbus<=addressbus+1;    //next position
                we<=0;
                CAPING<=1'b0;
                if(!IGPV)begin
                                    state<=idle;
                                    CAPING<=1'b0;                                end
                        else state<=startcaping;
       &
2楼: >>参与讨论
cgf1981
急啊,弄了n久了都没有搞定
各位帮帮忙啊!

3楼: >>参与讨论
laoyzyue
RTL应该有 delay信息
1。 RTL code 请不要用initial语句
2。 请用<=#1 赋值 , 而不是没有任何岩石信息的<=

4楼: >>参与讨论
Life7777
你说什么问题先.
搞一大堆代码出来做什么?
最怕看没头文,浪费时间.
要想在RTL延时是不是?
os_dly_wait (XXX); XXX:延时OS的时钟次数 

参与讨论
昵称:
讨论内容:
 
 
相关帖子
vhdl顶层文件建立
CPLD双向I/O口的编译问题
请教VHDL问题
求助:谁能给一个2倍频的锁相环设计实例?
怎样复制CPLD?
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号