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型状态机相比,由于其状态输 ...
随机推荐
- Node的Buffer
var buf3 = new Buffer([1,2,3,4,-10,256],'utf8');//默认为utf8 console.log(buf3[0]);//正常的范围是0~255 console ...
- new char[]和new char()的区别
new char[1];分配一块连续的内存,也就是一个数组,里面有1个元素new char(1);分配一块内存,有一个元素,该元素被初始化为1
- ASP.NET Web API与Rest web api(一)
HTTP is not just for serving up web pages. It is also a powerful platform for building APIs that exp ...
- 【C++】虚函数
I 动态绑定.多态.虚函数.对象的静态类型与动态类型 1.基类中有两种函数: 派生类直接继承不做改变 派生类重新定义成适合自身的版本覆盖掉基类的函数 对于第一种就是普通的基类成员函数,第二种通常通过将 ...
- 解决调用context.Session["NAME"]时总出现Object reference not set to an instance of an object.异常的方法
if (context.Session != null) { }
- css中各种居中的奇技淫巧总结
css中各种居中的奇技淫巧总结 第一种,在固定布局中比较常用的技巧设置container的margin:0 auto: 第二种(从布局中入手) css .outer{ height:200 ...
- .emacs
(tool-bar-mode 0)(menu-bar-mode 0)(blink-cursor-mode 0);;(set-scroll-bar-mode nil);;(global-linum-mo ...
- JQuery: JQuery效果(隐藏、显示、切换,滑动,淡入淡出,以及动画)
JQuery:效果 JQuery效果有很多,包括隐藏.显示.切换,滑动,淡入淡出,以及动画等.隐藏:JQuery hide() 显示:JQuery show() 切换:JQuery toggle() ...
- ThreadLocal 多线程并发,数据隔离
ThreadLocal: 创建一个线程本地变量. 本质:在ThreadLocal类中有一个Map,用于存储每一个线程的变量的副本. 优点:既实现多线程并发,游兼顾数据的安全性. 区别:Synchro ...
- Chrome控制台调试工具用法
下面我们来看看console里面具体提供了哪些方法可以供我们平时调试时使用. Console API 当打开 firebug (也包括 Chrome 等浏览器的自带调试工具),window 下面会注册 ...