[verilog]常用任务之模拟UART Rxd引脚输入数据
首先要声明一个2维数组,用来存放文件里的数据
reg [7:0] DataMem[0:127] ;
在initial语句块中将文件数据读入到数组里
$readmemh("DataMem.txt",DataMem) ;
任务内容
integer i;
task SendData ; //声明的输入端口,调用任务时,需传递参数
input [7:0] DataNum ; //需要发送的数据个数,不要大于DataMem的长度
begin
repeat(DataNum)
begin
@ (posedge TxdClk);
Rxd = 0 ;
repeat(8)
begin
@ (posedge TxdClk);
Rxd =DataMem[i][0] ;
DataMem[i] = {1'b0,DataMem[i][7:1]} ;
end
@ (posedge TxdClk) ;
Rxd = 1 ;
i = i + 1 ;
end
end
endtask
调用方式
SendData(16) ;
Good Good Study! Day Day Up!