sasinop 发表于 2013-5-9 16:56:50

看看 TestBench 文件哪里有问题? 读txt 文件,仿真时全是“0


看看 TestBench 文件哪里有问题? 读txt 文件,仿真时全是“0”,但是我txt 文件里有数据的呀,ISE自带模拟器


moduleUARTAutomatic_Tb();

reg                         Clk ;
reg                         RSTn ;
reg                         Rxd;

wire                        Txd ;

reg                  RxdMem ;
reg                  TxdMem ;
reg                         TxdClk ;

parameter    BAUDRATE = 9600 ;
parameter    SAMPLECLKPERIOD = 1_000_000_000/BAUDRATE/16 ;
parameter    SYSCLKPERIOD = 20 ;
//parameter    SAMPLECLKPERIOD = 50_000_000/BAUDRATE/16 ;
parameter    TXDCLK = 1_000_000_000/BAUDRATE ;

task HarwareReset ;
    input      HoldLowTime ;
    begin
      RSTn = 1'b1;
      wait (Clk !== 1'bx);
      @ (negedge Clk);
      RSTn <= 1'b0;
      repeat(HoldLowTime)
            @ (negedge Clk);
      RSTn <= 1'b1;
    end
endtask

task RxdData ;    //声明的输入端口,调用任务时,需传递参数         
    input          DataNum ;
    integer i; //任务内部变量,modelsim无法查看
    begin
      i   = 0 ;
      repeat(DataNum)
      begin
            @ (posedge TxdClk);
            Rxd   = 0 ;
            repeat(8)
            begin
                @ (posedge TxdClk);
                Rxd = RxdMem ;
                RxdMem   = {1'b0,RxdMem} ;
            end
            @ (posedge TxdClk) ;
            Rxd   = 1 ;
            i = i + 1 ;
      end
    end
endtask


initial
begin
    Clk   = 0 ;
    TxdClk= 0 ;
    RSTn    = 1 ;
    Rxd   = 1 ;
    HarwareReset(4) ;
    $readmemh("E:/ise/myUart/rtl/RxdMem.txt",RxdMem) ;
    $readmemh("/TxdMem.txt",TxdMem) ;
    RxdData(9) ;
end

always
    #(SYSCLKPERIOD/2)   Clk = ~Clk ;
//always
    //#TXDCLK TxdClk= ~TxdClk ;
initial
begin
    #13
    forever
            #(TXDCLK/2) TxdClk= ~TxdClk ;
end

UARTAutomatic    UARTAutomaticEx01
(
    .Clk                            ( Clk                           ),
    .RSTn                           ( RSTn                        ),
    .Rxd                            ( Rxd                           ),
    .Txd                            ( Txd                           )
);


endmodule
页: [1]
查看完整版本: 看看 TestBench 文件哪里有问题? 读txt 文件,仿真时全是“0