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型状态机相比,由于其状态输 ...
随机推荐
- C code 字符串与整数的相互转化
#include<stdio.h> int str_to_int(const char *str,int *num); void int_to_str(char str[],const i ...
- 1012 最小公倍数LCM
1012 最小公倍数LCM 基准时间限制:1 秒 空间限制:131072 KB 输入2个正整数A,B,求A与B的最小公倍数. Input 2个数A,B,中间用空格隔开.(1<= A,B < ...
- Android开发笔记:打包数据库
对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...
- js判断是否为空火undefined是否给undefined加引号
js判断是否为空为undefined如果判断的是类型则用typeof(),如果其本身就是“undefind”字符窜,则不能这样判断, 这样typeof之后是字符串类型就判断不出来了,这是需要去掉typ ...
- Naming Conventions for .NET / C# Projects
http://www.akadia.com/services/naming_conventions.html Naming Conventions for .NET / C# Projects Mar ...
- Be a Smart Project Manager
The key to being a smart project manager is to remember how you are going to manage your project, to ...
- Javascript数据类型的一些注意点
1.字符串类型 substring()返回指定索引区间的子串: var s = 'hello, world' s.substring(0, 5); // 从索引0开始到5(不包括5),返回'hello ...
- SVN和Git的比较
最近开始学Git,跟以前常用的SVN来做个对比,以便对双方的优缺点了解更多些. 其实Git和SVN还是挺像的,都有提交,合并等操作,看来这是源码管理工具的基本操作. 1. Git是分布式的,SVN是集 ...
- notepad++代码折叠对应的树形结构快捷键
树形层次,从1开始计数 <!doctype html> <html lang="en" class="1"> <head clas ...
- preg_match_all
<meta charset="utf8"> <?php set_time_limit (0); for($i=1;$i<34;$i++){ $url = & ...