新闻  |   论坛  |   博客  |   在线研讨会
双向数据总线
0750long | 2010-03-10 21:03:32    阅读:2172   发布文章

双向数据总线

 

 

1、  先声明一个双向总线:inout[size-1:0] bus;

2、  读双向总线:a= bus;;

3、  通过一个过程块写双向总线

l         声明一个临时reg:reg [size-1:0] temp;

l         将临时reg放到双向总线:assign bus = (read)?temp:`bz;

l         将总线输出写入临时reg:always …begin temp = What_being_output; end

 

举例:

`timescale 1ns/100ps

module memory_M_by_N(
addr,
rd,
wr,
data
);
parameter M =3,N=4;
input [M-1:0] addr;
input wr,rd;
inout [N-1:0] data;

reg [N-1:0] memory [0:2**M-1];
reg [N-1:0] temp;

always @(data or addr or rd or wr)
 begin
  if(wr)
   memory[addr] = data;
  else if(rd)
   temp = memory[addr];
  else
   temp = `bz;
 end

assign data =(rd)?temp:`bz;

initial $readmemh("mem.dat",mem);

endmodule

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客