systemverilog新增的always_comb,always_ff,和always_latch语句
在Verilog中,设计组合逻辑和时序逻辑时,都要用到always:
always @(*) //组合逻辑
if(a > b)
out = 1;
else
out = 0; always @(posedge clk) //时序逻辑 flip-flop触发器
if(en)
out <= in;
仅从关键字上,看不出设计者想要一个什么样的电路。
SystemVerilog把always关键字细化了。对不同的设计要求有不同的关键字:
always_comb //组合逻辑
if(a > b)
out = 1;
else
out = 0;
comb是combinational的缩写,always_comb表示设计者想要设计一个组合逻辑电路。同时不必再写敏感信号列表。我们在设计组合逻辑电路时,一件最重要的事就是不要一不小心搞一个latch出来。always_comb会告诉综合工具,这里需要的是一个组合逻辑电路。假如我们设计时,if语句或者case语句没有写完整,
always_comb //错误
if(a > b)
out = 1;
在综合时,我们会收到警报:这里应该是组合逻辑,你把他写成了latch。使用always,则不会收到这样的警告。
如果真的需要latch,SystemVerilog准备了专门的关键字:
always_latch //latch
if(clk)
out = in;
always_latch是电平敏感的,它也不需要敏感信号列表,它会告诉综合工具,这里我就是需要一个latch。
always_comb和always_latch极大的降低了unintentional latch的出现。这是对电路设计的一大提升。
对于flip-flop触发器的设计,也有专门的关键字:
always_ff @(posedge clk) //flip-flop触发器
if(en)
out <= in;
ff是flip_flop的缩写,它需要敏感信号列表,并且是边沿触发的,所以敏感信号列表里的信号,都需要加关键字posedge或negedge。假如我们忘记了写posedge或者negedge:
always_ff @(clk) //错误
if(en)
out <= in;
综合工具会发出警告:这里应该是flip-flop,可你写的不是flip-flop。使用always,则不会收到这样的警告。
SystemVerilog把always细化成always_comb, always_ff, 和always_latch。使综合工具可以自动检查各种细节,降低了设计失误的可能。
systemverilog新增的always_comb,always_ff,和always_latch语句的更多相关文章
- sql 操作常用操作语句 新增、修改字段等
常用sql --sql 事务 BEGIN TRAN 事物名 )BEGIN ROLLBACK TRAN 事物名;RETURN;END COMMIT TRAN 事物名 --数据库清缓存 DBCC DROP ...
- systemverilog.vim
" Vim syntax file " Language: SystemVerilog " Maintainer: Stephen Hobbs <stephenh@ ...
- systemverilog的高亮显示
1. 在_vimrc文件末尾添加: syntax on "确定vim打开语法高亮 filetype on "打开文件类型检测 filetype plugin on "为特 ...
- Systemverilog for design 笔记(七)
转载请标明出处 第一章 接口(interface) 1.1. 接口的概念 接口允许许多信号合成一组由一个端口表示. 1.2. 接口声明 //接口定义 Interface main_bus ...
- SystemVerilog for design 笔记(二)
转载请标明出处 1. System Verilog文本值和数据类型 1.1. 增强的文本值赋值 相对于verilog,SV在文本值赋值时可以1.无需指定进制 2.赋值可以是逻辑1 用法: reg ...
- 《SystemVerilog验证-测试平台编写指南》学习 - 第2章 数据类型
<SystemVerilog验证-测试平台编写指南>学习 - 第2章 数据类型 2.1 内建数据类型 2.2 定宽数组 2.2.1 声明 2.2.2 常量数组 2.2.3 基本的数组操作 ...
- 三、动态SQL语句
//备注:该博客引自:http://limingnihao.iteye.com/blog/106076 有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空, ...
- MyBatis学习 之 三、动态SQL语句
目录(?)[-] 三动态SQL语句 selectKey 标签 if标签 if where 的条件判断 if set 的更新语句 if trim代替whereset标签 trim代替set choose ...
- VB6基本数据库应用(四):数据的提取,新增和修改
列的第四篇,上一篇在:http://blog.csdn.net/jiluoxingren/article/details/9474661 数据的提取,新增和修改 由于在写第三章的时候没有充分考虑这一章 ...
随机推荐
- php生成rss订阅
代码: <?php $host = $_SERVER['HTTP_HOST']; $xmls = '<?xml version="1.0" encoding=" ...
- Linq to SQL 语法查询(子查询 & in操作 & join )
var 子查询 = from c in ctx.Customers where (from o in ctx.Ord ...
- 求伪逆矩阵c++代码(Eigen库)
非方阵的矩阵的逆矩阵 pseudoInverse 伪逆矩阵是逆矩阵的广义形式,广义逆矩阵 matlab中是pinv(A)-->inv(A). #include "stdafx.h&q ...
- windows 下XAMPP 使用Nginx替代apache作为服务器
说实话, 在windows下使用Nginx 着实有点不太方便, 但因项目需求, 又不想换系统(虽然可以搞个虚拟机玩), 只能用Nginx了 好了, 不多说了. 开始... 首先我用的是xampp包(A ...
- 如何通过sequel pro导入.sql脚本
1.参考地址 https://zhidao.baidu.com/question/985373253463808219.html
- Unity3d 多次显示关闭一个UI
publicclass OpenClooseGoUI : MonoBehaviour { public GameObject closeBt; public GameObject goUI ...
- SharePoint解决方案及开发系列(2)-ECM
很多次跟客户做咨询及沟通的时候,客户都问SharePoint能做什么?是不是就是做文档管理?为什么要花那么多的钱没SharePoint?高大上? 我上家公司面试的时候,我的那个BOSS面试官有一个问题 ...
- (八)solr7实现搜索框的自动提示并统计词频
solr7实现搜索框的自动提示并统计词频 1:用solr 的suggest组件,统计词频相对麻烦. 2:用TermsComponent,自带词频统计功能. Terms组件提供访问索引项的字段和每个词 ...
- POJ 3259 Wormholes【bellman_ford判断负环——基础入门题】
链接: http://poj.org/problem?id=3259 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...
- sparse matrix
w https://en.wikipedia.org/wiki/Sparse_matrix 稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB - Bin的专栏 - 博客园ht ...