精华内容
下载资源
问答
  • 矿山环境复杂,智能化识别此类行为需要数据驱动方法和基于机器领域知识方法,然而矿山物联网数据缺乏语义信息,矿山人员状态信息和安全行为知识没有标准表示方法。为解决上述问题,提出了一种基于...
  • 父母对情感反应被描述为支持或支持孩子社会情感发展,在这方面,他们与孩子情感对话也被认为是有帮助。 然而,对于ID儿童母亲或父亲这些反应和保守性知之甚少。 第一项研究比较了54名母亲和32名父亲...
  • 针对该问题,提出一种在WSDL中扩展服务行为描述的服务接口方案,基于GMF实现服务行为编辑器,帮助用户在WSDL中协同添加或编辑服务行为,并利用Axis2开源框架开发客户端生成器,根据WSDL中的服务行为反向自动生成具有...
  • 当我们使用HDL代码在描述硬件功能时,主要有三种描述方式,即结构化描述方式、数据流描述方式、行为描述方式。在平时编程时,根据实际情况及个人喜好选择其中一种或者几种混合在一起进行自己HDL代码编写。下面...

    当我们使用HDL代码在描述硬件功能时,主要有三种描述方式,即结构化描述方式、数据流描述方式、行为级描述方式。在平时编程时,可根据实际情况及个人喜好选择其中一种或者几种混合在一起进行自己的HDL代码编写。下面对三种描述方式进行介绍。

    1.结构化描述方式

    结构化描述方式时抽象级别最低的描述方式,但同时也是最接近于实际硬件的描述方式。采用结构化描述方式来编写HDL代码,其思路就跟在面包板上搭建数字电路是一样的,编程就是一个一个的器件相连
    但结构化描述不常用,原因有二:
    1.使用结构化描述方式不宜描述功能复杂电路。因为我们大脑不仅要抽象出电路逻辑功能,还要抽象出具体实现形式。
    2.不同FPGA厂商提供的软件集成开发环境中的原语使用名称是不一样的,代码编写起来不通用。
    但结构化描述方式也有优势。父模块调用子模块的过程只能通过结构化的描述方式来实现。
    言而总之,结构化描述方式的特征就是实例化语句
    一个例子
    输入abcd分别为一比特逻辑,当ab不相等且cd不相等时输出o为1,否则输出o为0.要用结构化描述方式编写代码,必须先抽象出数字电路结构(即具体用到什么门电路)。
    比如说采用下图的门电路(答案不唯一)
    在这里插入图片描述
    这里采用两个异或门和一个与门。
    verilog实现

    module aa(
    input a,b,c,d,
    output o
    );
    wire tmp0,tmp1;
    XOR2 m0(.O(tmp0),.I0(a),.I1(b));
    XOR2 m1(.O(tmp1),.I0(c),.I1(d));
    AND m2(.O(o),.I0(tmp0),.I1(tmp1));
    endmodule
    

    2.数据流描述方式

    数据流描述方式,又可称为寄存器传输级描述,他主要从数据的变换和传送角度来描述设计模块,并且使用的语句多为和硬件行为一致的并行语句。
    数据流描述方式描述上例。

    module aa(
    input a,b,c,d,
    output o
    );
    wire tmp0,tmp1;
    assign tmp0 = a ^ b;
    assign tmp1 = c ^ d;
    assign o = tmp0 & tmp1;
    endmodule
    

    对比结构化描述方式,数据流描述方式清晰地阐明数据从输入到输出的传递情况。但是队医tmp0,tmp1,o却没有显式地规定一定要用什么具体电路去实现。比如,数据流的描述只说明tmp0可以=由ab异或产生,但并没有说明用什么门电路来实现异或操作。是直接一个异或门,还是使用与或非搭建)。这一部分工作交给编译器。
    到这里,你可能想问前面结构化描述方式就说明异或操作就用一个异或门来实现了吗?况且FPGA基本单位也不是一个个的与或非异或门啊。其实前面结构化描述方式使用的原语。类似于一个IP核,核内描述就能够说明使用的是一个什么门电路。

    3.行为级描述

    行为级描述方式的主要载体就是串行语句,例如ifelse同时辅以并行语句用以描述各个算法之间的连接关系

    module aa(
    input a,b,c,d,
    output o
    );
    
    always@(a,b,c,d)
    if(a != b && c != d)
    	o = 1'b1;
    else 
    	0 = 1'b0;
    	
    endmodule
    

    行为级描述简直就是自然语言的直译啊。所以行为级描述抽象级别最高、概括能力也最强。

    摘自《FPGA之道》

    展开全文
  • 大规模分布式对象计算系统要成为高可靠性系统 ,就必须解决对象失效、节点错误、网络隔离和不可预知通信延迟等问题 .本文中设计了一种名叫对象容错服务 ( OFS)解决技术 ,并采用一种基于面向对象高阶 Petri网...
  • 行为子类型是一个可复用类所具备重要性质,这篇文章主要介绍一下行为子类型和Java中关于...1.1子类型可以增加方法,但是不可删。 1.2子类型需要实现抽象方法。 1.3子类型不能具有更强前置条件。 1.4子类型不能

    行为子类型是一个可复用的类所具备的重要性质,这篇文章主要介绍一下行为子类型和Java中关于泛型的子类型。

    1. 行为子类型
      Java中一个非常重要的技术就是继承,子类可以通过继承父类获得父类的方法和字段。一般来说,通过继承关系得到的子类是父类的一个更加具体的描述,我想这就是子类型的由来。我们可以通过以访问父类型的方式来访问子类型而不会得到不一样的结果。行为子类型需要满足下面几个性质:
      1.1子类型可以增加方法,但是不可删。
      1.2子类型需要实现抽象方法。
      1.3子类型不能具有更强的前置条件。
      1.4子类型不能具有更弱的后置条件。
      1.5参数类型逆变。
      Java不支持这一条件,因为Java具有重载的技术,如果支持逆变,重载技术会很复杂。
      1.6返回值、异常协变。
      1.7不变量保持。
      对于其中的协变和逆变,依然是通过行为子类型来确定的,如果一个类是另外一个类的行为子类型,那么可以通过返回这个子类型来代替父类,这就是协变(子类型代替父类型);相反使用父类型来代替子类型就是逆变。

    2. 包含泛型的行为子类型
      举个栗子,List<Number>List<Integer>两个类型,Integer是Number的子类型,按理说一个存储Number的集合应该也能存储一个Integer的集合,但是Java中并不支持这点。同样List<List>List<ArrayList>,即使是接口-实现类也不满足。
      Java提供了通配符这项技术,List<? extend Number>表示Number以及继承Number的所有子类型。List<? super Integer>表示Integer以及Integer的所有父类型。通过这样的技术,我们就可以满足泛型的行为子类型了。

    展开全文
  • 三、wait语句wait语句是一种不可综合电平触发事件控制语句,有如下两种形式: wait(条件表达式) 语句/语句块;wait(条件表达式);对于第一种形式,语句块可以是串行块(begin…end)或并行块(fork…join)。当逻辑...

    三、wait语句

    wait语句是一种不可综合的电平触发事件控制语句,有如下两种形式:

    1.  
      1. wait(条件表达式) 语句/语句块;
      2. wait(条件表达式);

    对于第一种形式,语句块可以是串行块(begin…end)或并行块(fork…join)。当逻辑表达式为“真”时,语句块立即得到执行;否则,暂停进程并等待,直到逻辑表达式变为“真”,再开始执行。

    对于第二种形式,当仿真执行到wait语句时,如果条件表达式为真,那么立即结束该语句的执行,仿真程序继续往下执行;否则,仿真程序进入等待状态,直到条件表达式为真。

    展开全文
  • 通常情况下,我们可能写个if..else语句进行判断,或switch语句进行判断,但是当状态越来越多时,代码将变得不可维护,可读性和扩展性变得很差。同时,状态逻辑和动作逻辑没有分离。而状态模式正是解决这样问题。...

     [设计模式]行为模式-状态模式(C++描述)

    second60 20180509

    1. 什么是状态模式

    对于一些人或事特,会有不同状态,而一个状态会在不同的表现下转移到下一个状态。

    通常情况下,我们可能写个if..else语句进行判断,或switch语句进行判断,但是当状态越来越多时,代码将变得不可维护,可读性和扩展性变得很差。同时,状态逻辑和动作逻辑没有分离。而状态模式正是解决这样的问题。


    状态模式,使我们把状态逻辑动作实现分离出来,每个状态封装到一个类中。

     

    2. 状态模式结构图

     

     

    2.1 分析

    1. 环境类:定义客户感兴趣的接口。维护一个ConcreteState子类的实例,这个实例定义当前状态。

    2. 状态抽象类:定义状态的抽象接口,封装与Context相关的接口

    3. 具体状态类:每一个子类实现一个状态相关的行为。

    2.2 代码实现

    class  Context;
    // 状态父类
    class  State
    {
    public:
    virtual ~State(){}
    virtual void OperationInterface(Context* context) = 0;
    virtual void OperationChangeState(Context* context) = 0;
    protected:
    bool ChangeState(Context* context,State* state)
    {
    context->ChangeState(st);
    }
    };
    // 具体状态类
    class  ConcreteStateA: public State
    {
    public:
    void OperationInterface(Context* context)
    {
    //doing
    }
    
    void OperationChangeState(Context* context)
    {
    OperationInterface(context);
    this->ChangeState(context, new ConcreteStateB());
    }
    };
    
    // 具体状态类
    class  ConcreteStateB: public State
    {
    public:
    void OperationInterface(Context* context)
    {
    //doing
    }
    
    void OperationChangeState(Context* context)
    {
    OperationInterface(context);
    this->ChangeState(context, new ConcreteStateA());
    }
    
    };
    
    //环境类
    class Context
    {
    public:
    Context(State* state){_state = state;}
    ~Context(){delete _state;}
    bool ChangeState(State* state)
    {
    this->_state = state;
    return true;
    }
    
    void OperationInterface()
    {
    _state->OperationInterface(this);
    }
    
    void OperationChangeState()
    {
    _state->OperationChangeState(this);
    }
    
    private:
    friend class State;
    State* _state;
    };
    
    int main()
    {
    State* st = new ConcreteStateA();
    Context* con = new Context(st);
    con->OperationChangeState();
    con->OperationChangeState();
    con->OperationChangeState();
    //释放
    return 0;
    }

    2.3 优点

    1. 对象的状态逻辑和动作实现分离,状态分布在不同子类中

    2. 封装了转换规则

    3. 枚举了可能的状态,确定了状态的种类

    4. 将所有与某个状态有关的行为放到了一个类中,方便增加新的状态

    5. 多个环境对象可共享一个状态对象,减少对象的个数

    2.4 缺点

    1. 因为状态分布在不同子类中,所以整体状态图的理解成本大

    2. 会增加系统类和对象的个数

    3. 状态模式结构与实现都较为复杂,如果使用不当,导致结构和代码混乱

    4. 新增状态,可能会修改相互转换的其他状态

     

    2.5 状态模式和策略模式

    状态模式和策略模式结构图很相似,但两者的用途不同。

    状态模式主要适应对象状态改变时的不同处理策略

    策略模式为具体算法和实现接口的解耦

     

     

    3 适用场景

    1、行为随状态改变而改变的场景。

    2、条件、分支语句的代替者。

     

    4 例子

    1: 电梯的状态:开门,关门,停,运行

    代码:

    // 四种状态
    enum ELiftState
    {
    ELiftState_Open		= 1,
    ELiftState_Close	= 2,
    ELiftState_Stop		= 3,
    ELiftState_Run		= 4,
    };
    
    //电梯状态抽象类
    class LiftState
    {
    public:
    LiftState(){}
    void setContext(Context* context){_context = context;}
    virtual ~LiftState(){}
    virtual void open() = 0;
    virtual void close() = 0;
    virtual void stop() = 0;
    virutal void run() = 0;
    private:
    Context* _context;
    };
    // 具体状态类
    class OpenningState:public LiftState
    {
    public:
    OpenningState(Context* context):LiftState(context){}
    void close()
    {
    this->_context->setLiftState(ELiftState_Close);
    this->_context->getLiftState()->close();
    }
    void open()
    {
     	cout << “continue openning” << endl;
    }
    void run(){}
    void stop(){}
    };
    // 具体状态类
    class ClosingState:public LiftState
    {
    public:
    ClosingState(Context* context):LiftState(context){}
    void close()
    {
    cout << “continue closing” << endl;
    }
    void open()
    {
    this->_context->setLiftState(ELiftState_Open);
    this->_context->getLiftState()->open();
    }
    void run()
    {
    this->_context->setLiftState(ELiftState_Run);
    this->_context->getLiftState()->run();
    }
    void stop()
    {
    this->_context->setLiftState(ELiftState_Stop);
    this->_context->getLiftState()->stop();
    }
    };
    
    // 具体状态类
    class RunningState:public LiftState
    {
    public:
    RunningState(Context* context):LiftState(context){}
    void close(){}
    void open(){}
    void run()
    {
    cout << “keep running” << endl;
    }
    void stop()
    {
    this->_context->setLiftState(ELiftState_Stop);
    this->_context->getLiftState()->stop();
    }
    };
    class StoppingState:public LiftState
    {
    public:
    StoppingState(Context* context):LiftState(context){}
    void close(){}
    void open()
    {
    this->_context->setLiftState(ELiftState_Open);
    this->_context->getLiftState()->open();
    }
    void run()
    {
    this->_context->setLiftState(ELiftState_Run);
    this->_context->getLiftState()->run();
    }
    void stop()
    {
    cout << “keep stop”<< endl;
    }
    };
    
    class Context
    {
    public:
    Context(){}
    void setLiftState(LiftState* state)
    {
    _now_state = state;
    state->setContext(this);
    }
    void open(){_now_state->open();}
    void close(){_now_state->close();}
    void run(){_now_state->run();}
    void stop(){_now_state->stop();}
    private:
    LiftState * _now_state;
    };
    
    int main()
    {
    Context* context = new Context();
    context->setLiftState(new ClosingState());
    context->open();
    context->close();
    context->run();
    context->stop();
    }

    5 总结

    状态模式,把状态逻辑和动作分离,状态在状态子类中,动作在Context中.两者互相变化独立即,改变状态逻辑可以很容易复用Context的动作,也可以在不影响State派生类的前提下创建Context子类来更改或替换动作。

    状态模式使用比较广泛,凡是涉及到状态转换,或分支判断的,都可以采用状态模式,但在有适用的情况下使用。

     

    下节预告:观察都模式

     

    展开全文
  • 昨天在写文章(转载)的时候发现了...对象的每一个属性都有一个描述对象,用来描述和控制该属性的行为,用Object.getOwnPropertyDescriptor方法来获取该描述对象(用Object.defineProperty方法来设置)。  然后这...
  • JavaScript 中属性描述符 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼 写在前面 ...数据描述符是一个具有属性值,该值是可写,也可能是不可。数据描述符具有以下可选键值:
  • 数据属性有4个描述行为的特性         [[configurable]]: 表示能否通过delete删除属性, 或者能否把属性修改为访问器属性      &...
  •  一:行为级:分析电路功能、性能以及其他兼容性问题,只验证设计功能,考虑设计任何时序信息;  二:RTL级:寄存器级,只能使用综合语句结构进行描述  三:RTL级综合:把RTL级描述转换为门级电路网表 ...
  • length属性的不可枚举

    2018-05-15 11:00:00
    对象的每个属性都有一个描述对象(Descriptor),用来控制该属性的行为。Object.getOwnPropertyDescriptor方法可以获取该属性的描述对象。 let obj = { foo: 123 }; Object.getOwnPropertyDescriptor(obj, 'foo') ...
  • 提出了系统与元件两层分层模块构建方法,应用连续时间Markov模型(CTMC)描述可修元件之间状态相依和变迁动态行为,应用多态多值决策图(MVDD)构建系统结构函数.为处理元件状态可比情形,将其分为组内、...
  • 将用户一次会话作为记录单元,描绘出用户与交互环境、工具、会话行为和所在页面4个维度相结合的行为流图;然后,依据数据分析,提取可信行为特征参数并使用SMOTE算法平衡数据集;最后,利用决策树和随机森林算法完成用于...
  • JS — 行为层 — 从交互角度描述页面行为 JS应用场景 JS发展到现在几乎无所不能,常见应用场景有: 网页特效 服务端开发(Node.js) 命令行工具(Node.js) 桌面程序(Electron) App(Cordova) 控制硬件-...
  • 我们考虑了广义相对论吸积盘围绕紧凑天体物理物体与它们外部介质相互作用随机振动的描述,该过程基于带色噪声广义朗文方程和涨落耗散定理。 前者解释了摩擦力一般记忆和延迟作用。 内存效应存在会影响磁盘...
  • 界程逻辑中并发模态副词是观察进程交互行为的关键因素之一,但引入并发模态副词又会导致模型检测的不可判定性。针对这一问题,提出了可判定描述移动界程演算进程空间结构和行为性质应用界程逻辑。该逻辑...
  • 方向控滤波器能有效描述动作边缘特征,通过引入方向控滤波器改进HOG特征以增强局部边缘信息,同时对加速稳健特征进行k-means聚类获得词袋模型;最后将融合后的行为特征输入支持向量机对行为特征进行分类识别。在...
  • 以Petri网作为行为描述和结构描述的统一基础,提出了一种描述软件体系结构方面及其编织逻辑的形式化方法,并通过实例对相关的概念和模型进行了说明。应用研究表明,该方法描述能力强,不仅能描述复杂的方面结构、...
  • 算法 ...在数学和计算机科学之中,算法(Algorithm)为一个计算...算法是一种描述程序行为的语言,广泛应用于计算机科学领域,是一种让程序最为简洁思考方式。 目录 1概述 2特征 3要素 ...
  • 提出一种基于行为时序逻辑入侵取证形式化方法,其描述语言能够准确描述入侵证据、系统知识以及攻击行为,并具有在部分数据缺失情况下进行非确定性推理能力;其自动验证工具能够寻求额外证据并检查是否有...
  • Behavior级,即行为级,指是仅仅描述电路功能,可以采用任何Verilog语法的描述形式,行为目标是实现特定功能,而没有综合限制。 **行为描述不关心电路具体结构,只关注算法。**行为级是RTL级上一...
  • 使用注册表编辑器配置的可选参数 注册表中通常存在这些参数。可以创建它们以修改 TCP/IP 协议驱动程序默认行为。 ArpAlwaysSourceRoute 项:Tcpip\Parameters 数值类型:REG_DWORD - 布尔型 有效范围:...
  • 本文实例讲述了Yii Framework...关于 Yii 事件和行为的描述参考 http://www.yiiframework.com/doc/api/1.1/CComponent 本文参考文章: http://www.larryullman.com/2010/07/20/forcing-login-for-all-pages-i
  • 行为验证码采用嵌入式集成方式,接入方便,安全,高效,抛弃了传统字符型验证码展示-填写字符-比对答案的流程,采用验证码展示-采集用户行为-分析用户行为流程,用户只需要产生指定的行为轨迹,需要键盘手动输入,...
  • Verilog行为建模

    千次阅读 2018-11-19 14:45:40
    RTL描述方式是行为描述方式子集; 行为描述 是对系统高抽象级描述。在这个抽象级,注重是整个系统功能而不是实现。 Verilog有高级编程语言结构用于行为描述,包括: wait, while, if then, case和forever ...
  • 行为数据、日志数据处理,往往成为企业数据建设首先面对瓶颈,这些数据不易保存,实时获取分析难度较大,但是数据价值却不可估量。在大数据中,90% 以上数据爆发来自于行为数据,就像现在互联网、移动互联网...
  • <div><p>描述您遇到bug</strong> 任务编排定位规则应提示“请选择非引用属性”,选引用属性。 <p><strong>如何重现</strong> 打开协同》任务编排页面, 进行插件配置,定位规则栏位...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,799
精华内容 719
关键字:

不可描述的行为