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型状态机相比,由于其状态输 ...
随机推荐
- Magento PHP Extension "curl" must be loaded解决方法
我记得我第一次在xampp装magento的时候,进入后台时提示PHP Extension "curl" must be loaded 在网页上查了下原因和解决方法,发现是mage ...
- Processes vs Threads
A process is an executing instance of an application. What does that mean? Well, for example, when y ...
- Excl 的一些用法--如何给很多列赋同一个值
1.用鼠标选定要负责的列(多列) 2.在处填写值 3.Ctrl+Enter
- RaspberryPi uart
通过调试口查看树莓派开机启动信息,学习python控制串口的方法. 参考链接: http://www.elinux.org/Serial_port_programming 硬件连接: 硬件原理图链接: ...
- java 获取请求客户端的真实IP地址
转载自:http://leiyongping88.iteye.com/blog/1545930 用request.getRemoteAddr();方法获取的IP地址是:127.0.0.1或192.16 ...
- iOS 使用封装的NSLog来打印调试信息
//DLog代替NSLog //debugMethod() 代替 NSLog(@"%s", __func__) //DLog在release下不会输出 #ifdef DEBUG # ...
- 30天,O2O速成攻略【8.16武汉站】
活动概况 时间:2015年08月16日13:30-16:30 地点:光谷创业咖啡(光谷广场资本大厦一楼停车场内) 主办:APICloud.爱立示.MBA移动业务助理 网址:www.apicloud.c ...
- Winform项目调用asp.net数据接口
最近一个WPF项目需要改写成android项目,思路是在asp.net项目中编写一个通用接口,便于其它平台下调用数据.刚接触到这些东西的时候完全是一头雾水,最根本的原因是不明白网站中的一个网页,为什么 ...
- Inside Flask - app.py - 1
Inside Flask - app.py - 1 除 werkzeug 和 jinja2 等依赖库外,app.py 是在 Flask 的 __init__.py 中导入的第一个 Flask 自身的模 ...
- yum报错: Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
在Centos 5.x或6.x上安装RHEL EPEL Repo repository,资源库,源的意思.RHEL EPEL(Extra Packages for Enterprise Linux) ...