verilog 生成块
来源:互联网 发布:淘宝售后客服工作规范 编辑:程序博客网 时间:2024/06/07 05:01
你需要先理解“综合”前后程序的变化。综合前,程序是一段纸面上的逻辑语言。但是综合后,程序被构建为一张逻辑电路图,称为网表。
当你写下if等判断逻辑代码时,意思是希望这些“if”逻辑最后会变成电路。
而generate if是告诉综合器:除非满足某条件才将以下代码综合为电路。换句话说,如果generate if的条件不满足,那么这段纸面代码会被综合器直接忽略。 两者有本质不同。
来源 http://bbs.elecfans.com/jishu_462684_1_1.html
generate相关的有generate for, generate if, generate case, generate block,genvar。 generate可以理解为静态展开行为。一般用的比较多的是它的generate for和generate if。这个和普通的for和if不一样的地方在于,它描述的是设计单元,而非单纯的组合逻辑电路。而对他的要求在于一定要能在编译时期展开,把行为预先确定下来。而for和if可以理解为运行期行为。
举例而言,假设你有一个
parameter ODD_CHKSUM = 1'b1;
generate begin
if (ODD_CHKSUM == 1'b1) begin
odd_checksum i_checksum(data, o_chksum);
end
else begin
eva_checksum i_checksum(data, o_chksum); // Pingufocpux 理解:不会被编译器编译,和没有生成块的优势是节约资源
end
endgenerate
上述两个instance只能实例化一个。在simulation的信号列表里面只会看到一个。而普通的if就不是这样了,两个分支你都看的到。所以在generate block里面可以有:instance实例化,assign语句,always模块注意这些都是模块级别的语句。
来源:
http://www.zybang.com/question/c7637e7a33da09dad8c2e3a2d6616202.html
- verilog 生成块
- Verilog的块语句
- verilog块语句
- 如何深入理解verilog中“生成块(generate)”的概念
- verilog过程块与赋值
- Verilog学习笔记基本语法篇(七)········ 生成块
- verilog中顺序块和并行块浅…
- verilog入门经验(一) always块使用
- verilog入门经验(一 ) a lways块使用
- 用verilog实现m序列生成
- verilog
- verilog
- Verilog
- xcode 快速生成代码块
- html生成随机色块
- Verilog中生成语句(generate)的用法
- Verilog HDL语言always块未声明positive或negative导致的时钟不对准
- 截取HTML中代码块生成图片
- 关于MD5值加密算法
- Python 使用正则表达式 - 2
- IE获取文件目录下的文件列表及ActiveXObject IE设置
- 分享git使用
- 数据结构实验图论:基于邻接矩阵/邻接表的广度优先搜索遍历
- verilog 生成块
- hdu5386
- 浮点数在计算机中不能准确表示范例
- 二分图-最大匹配,最小路径覆盖,最小点覆盖(KM算法)
- 关于指针的加减操作
- Webkit中HTML5 Video的实现分析-HTMLMediaElement & MediaPlayer
- 一次mongoDB的崩溃拉起记录
- NIO(JDK1.4)--缓冲区
- 剑指offer:3-二维数组中的查找