generate用法以及参数传递_第1页
generate用法以及参数传递_第2页
generate用法以及参数传递_第3页
generate用法以及参数传递_第4页
generate用法以及参数传递_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Verilog 2001 添加了 generate 循环 允许产生 module 和 primitive 的多个实例化 同时也可以 产生多个 variable net task function continous assignment initial 和 always 在 generate 语句中可以引入 if else 和 case 语句 根据条件不同产生不同的实例化 用法 1 generate 语法有 generate for genreate if 和 generate case 三种 2 generate for 语句必须有 genvar 关键字定义 for 的变量 3 for 的内容必须加 begin 和 end 4 必须给 for 语段起个名字 例子 1 generate for 例子 generate genvar i generate 8 samll fifo for in data i 8X72 for i 0 i NUM QUEUES i i 1 begin in arb queues NUM QUEUES 8 small fifo WIDTH DATA WIDTH CTRL WIDTH MAX DEPTH BITS 2 in arb fifo Outputs dout fifo out ctrl i fifo out data i full nearly full nearly full i prog full empty empty i Inputs din in ctrl i in data i wr en in wr i rd en rd en i reset reset clk clk end block in arb queues endgenerate 2 generate if 例子 generate if REG WIDTH WRITE WIDTH begin new data a generation assign new data a merge update merge wr data held wr data a end else begin assign new data a merge update REG WIDTH WRITE WIDTH 1 merge wr data sign merge wr data REG WIDTH WRITE WIDTH held wr data sign a held wr data a end endgenerate 3 generate 还可以进行多个 assign 赋值 module anytest v input clk input 7 0 datain output 7 0 dataout output finish wire 7 0 mem 31 0 wire 32 8 1 0 xxx reg 7 0 i generate genvar i for i 0 i 31 i i 1 begin wiertech assign mem i 8 b0 end endgenerate endmodule ps 对于 a 8 i 8 this is the so called Indexed vector part selects 在 Verilog 1995 中 可以选择向量的任一位输出 也可以选择向量的 连续几位输出 不过此时连续几位的始末数值的 index 需要是常量 而在 Verilog 2001 中 可以用变量作为 index 进行 part select base expr width expr positive offset base expr width expr negative offset 其中 base expr 可以是变量 而 width expr 必须是常量 表示由 base expr 向上增长 width expr 位 表示由 base expr 向 上递减 width expr 位 例如 reg 63 0 word reg 3 0 byte num a value from 0 to 7 wire 7 0 byteN word byte num 8 8 如果 byte num 的值为 4 则 word 39 32 赋值给 byteN 二 参数传递 类似 VHDL 的 Generic 语句 Verilog 也可以在例化时传递参数 传递的参数是子模块中定义的 parameter 传递的方法 1 module name parameter1 parameter2 inst name port map 2 module name parameter name para value parameter name para value inst name port map 用 方法和 port map 的写法差不多 module multiplier a b product parameter a width 8 b width 8 localparam product width a width b width input a width 1 0 a input b width 1 0 b output product width 1 0 product generate if a width 8 b width 8 CLA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论