总线和总线操作
总线是运算部件之间数据流通的公共通道。只要电路的规模允许,可以自由地确定总线的位宽,大大提高数据流通的速度。
各运算部件和数据寄存器组可以通过带控制端的三态门与总线的连接。通过对控制端电平的控制来确定在某一时间段内,总线归哪两个或哪几个部件使用。用Verilog描述总线和总线操作是非常简单的,下面是一个简单的与总线有接口的模块是如何对总线操作的例子:
module SampleOfBus(DataBus, link_bus, write);
inout [11:0] DataBus; //12位宽的总线双向端口
input link_bus; //向总线输出数据的控制电平
reg [11:0] outsigs; //模块内12位宽的数据寄存器
reg [13:0] insigs; //模块内14位宽的数据寄存器
assign DataBus=(link_bus)?outsigs:12'h zzz;
//当link_bus为高电平时通过总线把储存在outsigs的计算结果输出
always@(posedge write) //每当write信号上跳沿时
begin //接收总线上数据并乘以3
insigs<=DataBus*3; //把计算结果存入insigs
end
endmodule