简介
在学习FPGA时,整理的一些问题,慢慢积累,期待自己的进步。
个人邮箱: 1149025224@qq.com
欢迎交流!
generate语句的功能
有重复操作时(重复操作指的是对矢量中多个位操作、进行多个模块的实例引用)可以根据某些参数的定义来选择性的执行以编辑的代码。
我的理解就是相当于在一个大的代码块中选择合适的小的代码块来执行。
分类
generate-for
generate-if
generate-case
使用generate语句时应注意的点
- 必须有genvar关键字定义for语句的变量_记得用就可以了
- for语句的内容必须加begin和end_相当于区别开各个小代码块
- for语句必须有名字_相当于给小代码块取名字
给个例子
//创建一个2进制转换器
Module gray2bin
#(parameter SIZE = 8)
(
input [SIZE-1:0] gray,
output [SIZE-1:0] bin
)
Genvar gi; ////在generate语句中采用genvar声明//
generate
for (gi=0; gi<SIZE; gi=gi+1)
begin : genbit ////for语句必须有名字////
assign bin[i] = ^gray[SIZE-1:gi];
end
endgenerate
endmodule