full_case & parallel_case
case中的full_case与parallel_case讨论:
1)术语介绍: 整个case模块叫做:case_statement,注释部分叫做case_statement_header
case (case_expression) //synopsys full_case/parallel_case
case_item1 :case_item_statement1;
case_item2 :case_item_statement2;
case_item3 :case_item_statement3;
case_item4 :case_item_statement4;
endcase
casez,使用“?”来表示任意值。
casex,使用“?,z”来表示任意值,不建议使用。
2)如果使用full_case显式表示not_full_case,其他的没有的case_item值,not care。
full_case下也可能会出现latch,not_full_case下也可能不会出现latch(可以通过赋初值来避免)
module addrdecode (m0,m1,ce,addr); module addrdecode (m0,m1,ce,addr);
output m0,m1,ce; output m0,m1,ce;
input [31:0]addr; //产生3个latch input [31:0]addr; //无latch
reg m0,m1,ce; reg m0,m1,ce;
always @(addr) always @(addr)
casez(addr) // synopsys full_case {m0,m1,ce} = 3'b111;
2'b10: {m0,m1} = 2'b10; casez(addr) // synopsys full_case
2'b11: {m0,m1} = 2'b01; 2'b10: {m0,m1} = 2'b10;
2'b0?: {ce} = 1'b0; 2'b11: {m0,m1} = 2'b01;
endcasez 2'b0?: {ce} = 1'b0;
endmodule endcasez
endmodule
3)如果使用parallel_case显式表示not_parallel_case,可能有一些值会over_lap。
parallel_case用在not_parallel的case中,其中overlap的部分如果有效,会导致gate_level电路工作异常。
建议尽量不显式使用full_case和parallel_case来进行建模,对于平行结构多使用case,有优先级的结构多使用if-else。
full_case & parallel_case的更多相关文章
- full_case parallel_case学习心得
一般情况下,DC把case语句综合成选择器电路,但也可能把case语句综合成优先权译码电路.有时,优先权译码电路是不必要的,这是可以使用“// synopsys parallel_case”引导语句强 ...
- OpenRisc-42-or1200的ALU模块分析
引言 computer(计算机),顾名思义,就是用来compute(计算)的.计算机体系结构在上世纪五六十年代的时候,主要就是研究如何设计运算部件,就是想办法用最少的元器件(那时元器件很贵),最快的速 ...
- system verilog的一些总结(从其他博客复制来的)
转载自 http://blog.sina.com.cn/s/blog_e7fec2630101f5t9.html SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE 136 ...
- Altera的几个常用的Synthesis attributes
各厂商综合工具,对HDL综合时都定义了一些综合属性这些属性可指定a declaration,a module item,a statement, or a port connection 不同的综合方 ...
- FPGA合成编码
1 决策树 于FPGA推断使用if else报表及case达到. a) if else 是有特权的,类似于优先编码(当两个条件同一时候成立,仅推断条件靠前的成立),所以当有特权条件时应该採用if el ...
- SystemVerilog语言简介(三)
15. 强制类型转换 Verilog不能将一个值强制转换成不同的数据类型.SystemVerilog通过使用'操作符提供了数据类型的强制转换功能.这种强制转换可以转换成任意类型,包括用户定义的类型.例 ...
- Altera的几个常用的Synthesis attributes(转载)
各厂商综合工具,对HDL综合时都定义了一些综合属性这些属性可指定a declaration,a module item,a statement, or a port connection 不同的综合方 ...
- 转载 关于case语句的优先级
对于这样的组合逻辑电路 always@(X) case(X) X1: X2: …… endcase 如果分支项包含变量X的所有取值情况,并且互相不重复,那么这样的情况,其实没有必要使用综合指令. (一 ...
- FSM之三--代码风格
FSM设计之一http://www.cnblogs.com/qiweiwang/archive/2010/11/28/1890244.html Moore型状态机与mealy型状态机相比,由于其状态输 ...
随机推荐
- const 修饰函数
At the very first ,I got a problem . Vector Vector::operator+(const Vector &v)const{ return Vect ...
- Solr搜索基础
本例我们使用类库和代码均来自: http://www.cnblogs.com/TerryLiang/archive/2011/04/17/2018962.html 使用C#来模拟搜索.索引建立.删除. ...
- java的Random
首先,Point类 public class Point { int x, y; public Point(int x, int y) { this.x = x; this.y = y; } bool ...
- eclipse有时候会报错:Cannot change version of project facet Dynamic Web Module to 2.5。这个错误不会影响程序的运行,不过看着总是不舒服。这个问题现在可以解决啦。
把项目WEB-INF底下的web.xml文件头部的: <?xml version="1.0" encoding="UTF-8"?> < ...
- AFN 加Header
AFHTTPSessionManager * manager = [AFHTTPSessionManager manager]; manager.responseSerializer.acceptab ...
- C# base和this
• 是否可以在静态方法中使用base和this,为什么? • base常用于哪些方面?this常用于哪些方面? • 可以base访问基类的一切成员吗? • 如果有三层或者更多继承,那么最下级派生类的b ...
- 使用C语言把字母转换成大写,不能使用库函数
char to_upper(char input) { if ('a' <= input && input <= 'z') { return input - ' ...
- dd命令使用详解
dd命令使用详解 http://www.cnblogs.com/qq78292959/archive/2012/02/23/2364760.html 1.命令简介 dd 的主要选项: 指定数字的地方若 ...
- 取计算机特征码(网卡MAC、硬盘序列号、CPU ID、BIOS编号)
以下代码可以取得系统特征码(网卡MAC.硬盘序列号.CPU ID.BIOS编号) BYTE szSystemInfo[4096]; // 在程序执行完毕后,此处存储取得的系统特征码 UINT u ...
- frame与bounds的区别
原来你M,frame.size和bounds.size不总是一样的 在UIViewController的- (void)willAnimateRotationToInterfaceOrientatio ...