虚拟主机如何搭建网站,小生意创业项目,可以直接进入网站的正能量连接,小红书推广引流软件改进的case语句
SystemVerilog为case、casex和casez的判断提供了专门的unique和priority修饰符。这些修饰需放在关键字case、casex和casez前面。
unique case(case_expression)...//条件选项
endcasepriority case(case_expression)...//条件选项
endcase1、…改进的case语句
SystemVerilog为case、casex和casez的判断提供了专门的unique和priority修饰符。这些修饰需放在关键字case、casex和casez前面。
unique case(case_expression)...//条件选项
endcasepriority case(case_expression)...//条件选项
endcase1、unique case条件判断 unique case语句指定
只有一个条件选项与条件表达式匹配必须有一个条件选项与条件表达式匹配
unique case可以并行求值 修饰符unique允许设计者显示指定条件选项的顺序并不重要允许并行求值。软件工具可以优化掉推断出的选项顺序优先级。unique修饰符还指定了条件选项匹配。
always_combunique case(opcode)2b00:yab;2b01:ya-b;2b10:ya*b;2b11:ya/b;
endcaseunique条件检查 一个unique case不能有重叠的条件 当case、casex和casez语句被指定为unique时软件工具必须在语法上进一步检查以保证每个条件选项都是相斥的。如果在运行时有多个条件选项与条件表达式相匹配则工具会报告发生了运行错误。
logic[2:0] request;
always_combcasez(request) //设计应该一次只产生一个请求3b1??:slave1_gant1;3b?1?:slave2_gant1;3b??1:slave3_gant1;endcase unique修饰符表示了设计者是否想让条件选项同时为真。当加入了修饰符unique后只要条件语句执行并且条件表达式与多个条件选项匹配的情况发生所有软件工具包括仿真器都会产生警告。
logic [2:0] request;
always_combunique casez(select) //设计应该每次只产生一个grant3b1??:slave1_gant1;3b?1?:slave2_gant1;3b??1:slave3_gant1;endcase条件选择表不完整检查 unique case必须指明所有条件 当指定case、casex和casez语句为unique时如果所有的条件选项都不能和条件表达式匹配也没有缺省条件时软件工具会报告运行期警告。
logic[2:0] opcode;//3位矢量
always_compunique case(opcode)3b000:yab;3b001:ya-b;3b010:ya*b;3b100:ya/b;endcase虽然unique主要是在运行期检查有且只有一个条件选项为真但如果条件选项都是常数表达式软件工具可能会在编译期对唯一条件表达式选项的重叠发出警告。像综合编译器和代码检测器这样没有动态运行期的工具只能对选项重叠进行静态检查。 always_comb和unique case都有助于保证过程块用组合逻辑实现。但unique case进行的检查和always_comb进行的检查是不一样的不过这两种结构都是有助于保证复杂的过程块能综合为期望的逻辑。 unique case是在运行时进行检测保证每次出现的条件表达式的值只与一个条件选项匹配这样对每次出现的表达式的值都只能执行条件句的一个分支。运行期检测的优点是只会对在仿真中出现的实际数据作错误检查。缺点是错误检查的质量取决于测试向量的完整性。