当前位置: 首页 > news >正文

网站服务器排名前十电子元器件商城官网

网站服务器排名前十,电子元器件商城官网,微信公众号微网站建设,济南建设图审文章目录 过程结构initial 语句always 语句 事件控制语句块顺序语句块并行语句块 过程性赋值阻塞性过程赋值非阻塞性过程赋值 过程结构 下述两种语句是为一个设计的行为建模的主要机制#xff1a; initial 语句always 语句 一个模块中可以包含任意多个 initial 或 always 语… 文章目录 过程结构initial 语句always 语句 事件控制语句块顺序语句块并行语句块 过程性赋值阻塞性过程赋值非阻塞性过程赋值 过程结构 下述两种语句是为一个设计的行为建模的主要机制 initial 语句always 语句 一个模块中可以包含任意多个 initial 或 always 语句。这些语句相互并行执行即这些语句的执行顺序与其在模块中的顺序无关。一个 initial 或 always 语句的执行产生一个单独的控制流所有的 initial 和 always 语句在 0 时刻开始并行执行。 initial 语句 initial 语句只执行一次。initial 语句在模拟开始时执行即在 0 时刻开始执行。语法如下 initial [timing control] procedural_statementprocedural_statement 是下列语句之一 procedural_assignment (blocking or non-blocking)procedural_continuous_assignmentconditional_statementcase_statementloop_statamentwait_statementdisable_statementevent_triggersequential_blockparallel_blocktask_enable 顺序过程begin...end最常使用在进程语句中。这里的时序控制可以是时延控制即等待一个确定的时间或事件控制即等待确定的事件发生或某一特定的条件为真。 always 语句 与 initial 语句相反always 语句重复执行。与 initial 语句类似always 语句语法如下 always[timing control] procedural_statement例如产生时钟周期为 10 的波形 always#5 clk ~ clk;下例是由事件控制的顺序过程的 always 语句 reg[0:5] InstrReg; reg[3:0] Accum; wire ExecuteCycle;always(ExecuteCycle)begincase(InstrReg[0:1])2b00: Store(Accum, InstrReg[2:5]);2b11: Load(Accum, InstrReg[2:5]);2b01: Jump(InstrReg[2:5]);2b10:;endcaseend// Store、Load 和 Jump 是在别处定义的用户自定义的任务事件控制 在事件控制中always 的过程语句基于事件执行。有两种类型的事件控制方式 边沿触发事件控制电平敏感事件控制 边沿触发事件控制如下 event procedural_statement如下例所示 (posedge clock) curr_state next_state带有事件控制的进程或过程语句的执行须等到指定事件发生。上例中如果 clock 信号从低电平变为高电平正沿就执行赋值语句否则进程被挂起,直到 clock 信号产生下一个正跳边沿。 在电平敏感事件控制中进程语句或进程中的过程语句一直延迟到条件变为真后才执行。电平敏感事件控制以如下形式给出 wait(Condition)procedural_statement过程语句只有在条件为真时才执行否则过程语句一直等待到条件为真。如果执行到该语句时条件已经为真那么过程语句立即执行。在上面的表示形式中过程语句是可选的。 语句块 语句块提供将两条或更多条语句组合成语法结构上相当于一条语句的机制。在 Verilog 中有两类语句块即 顺序语句块begin...end语句块中的语句按给定次序顺序执行。并行语句块fork...join语句块中的语句并行执行。 顺序语句块 顺序语句块中的语句按顺序方式执行。每条语句中的时延值与其前面的语句执行的模拟时间相关。一旦顺序语句块执行结束跟随顺序语句块过程的下一条语句继续执行。顺序语句块的语法如下 begin[:block_id{declarations}]procedural_statement(s) end例如 begin#2 Stream 1;#5 Stream 0;#3 Stream 1;#4 Stream 0;#2 Stream 1;#5 Stream 0; end假定顺序语句块在第 10 个时间单位开始执行。两个时间单位后第 1 条语句执行即第 12 个时间单位。此执行完成后下 1 条语句在第 17 个时间单位执行延迟 5 个时间单位。然后下 1 条语句在第 20 个时间单位执行以此类推。 并行语句块 并行语句块中的各语句并行执行。并行语句块内的各条语句指定的时延值都与语句块开始执行的时间相关。当并行语句块中最后的动作执行完成时最后的动作并不一定是最后的语句顺序语句块的语句继续执行。换一种说法就是并行语句块内的所有语句必须在控制转出语句块前完成执行。例如 fork#2 Stream 1;#7 Stream 0;#10 Stream 1;#14 Stream 0;#16 Stream 1;#21 Stream 0; join如果并行语句块在第 10 个时间单位开始执行所有的语句并行执行并且所有的时延都是相对于时刻 10 的。例如第 3 个赋值在第 20 个时间单位执行并在第 26 个时间单位执行第 5 个赋值以此类推。 过程性赋值 过程性赋值是在 initial 或 always 语句内的赋值它只能对寄存器数据类型的变量赋值。 过程性赋值分两类 阻塞性过程赋值非阻塞性过程赋值 阻塞性过程赋值 赋值操作符是 的过程赋值是阻塞性过程赋值。阻塞性过程赋值在其后所有语句执行前执行即在下一语句执行前该赋值语句完成执行。 非阻塞性过程赋值 在非阻塞性过程赋值中使用赋值符号 。 在非阻塞性过程赋值中对目标的赋值是非阻塞的因为时延但可预定在将来某个时间步发生根据时延如果是 0 时延那么在当前时间步结束。 beginLoad 32;RegA Load;RegB Store; end当非阻塞性过程赋值被执行时计算右端表达式右端值被赋于左端目标并继续执行下一条语句。在上面的例子中我们假设顺序语句块在时刻 10 执行。第一条语句促使 Load 在第 10 个时间单位结束时被赋值为 32然后执行第 2 条语句 Load 的值不变注意时间还没有前进并且第 1 个赋值还没有被赋新值RegA 的赋值被预定为在第 10 个时间步结束时。在所有的事件在第 10 个时间单位发生后完成对左端目标的所有预定赋值。 下面是同时使用阻塞性和非阻塞性过程赋值的实例注意它们的区别。 reg[0:2] Q_State;initial beginQ_state 3b011;Q_state 3b100;$display(Current value of Q_State is %b, Q_State);#5;$display(The delayed value of Q_State is %b, Q_State); end执行 initial 语句产生如下结果 Current value of Q_State is 011 The delayed value of Q_State is 100
http://www.zqtcl.cn/news/582138/

相关文章:

  • 青岛网站制作服务商wordpress红包
  • 网站响应式设计如何提高网站文章收录
  • 网站 橙色如何做自己网站的seo
  • 网上商城网站建设公司兰州网站制作公司怎么样
  • 网站的动态图怎么做的获取网站访客qq
  • 黑龙江网站建站建设知名品牌形象设计公司
  • 网站建设去哪可接单怎么做微信小程序平台
  • 做外贸重新设计网站兰州网站建设慕枫
  • 服装销售 网站建设论文搭建企业网站需要什么
  • cnnic网站备案html网站建设代码
  • 金华网站建设明细报价表c苏宁网站开发
  • 在手机上怎么做微电影网站湖南人工智能建站系统软件
  • 网站做的一样算侵权吗站群建站系统
  • 骨干专业建设验收网站xueui wordpress
  • 宁波高质量品牌网站设计厂家世界上有php应用的网站
  • 网站平台建设的重要性响应式网站切图
  • 近期做网站需要什么软件网站制作常见的问题
  • vs做的本地网站甘肃省建设厅门户网站
  • 网站建设合同义务wordpress m1
  • 青海省建设局网站首页wordpress模板建站教程视频
  • 演示 又一个wordpress站点静态页面加wordpress
  • 企业做淘宝客网站有哪些有网站吗给一个
  • 深圳网站制作公司信息之梦与wordpress哪个好用
  • 免费搭建商城网站山西制作网站公司排名
  • 网站开发免费中建建设银行网站
  • 301重定向到新网站在线建站
  • 曰本做爰l网站沙朗做网站公司
  • 广州网站设计智能 乐云践新专家wordpress 头像设置
  • 电子商务学网站建设好吗佛山市手机网站建设企业
  • 为企业做网站电话开场白小说网站的里面的搜索是怎么做的