电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

【西西学FPGA】Lesson 9-Uart

2016年3月27日
1 tx_rx
2 task 调用
3 波特率和比特率
4 $readmemh(“filename”, mem_name)在使用这个命令时,”filename”中的路径要用反斜杠’/’,而不是斜杠’\’。
5 for 语句
6 采样率 载波
载波 或者载频(载波频率)是一个物理概念,其实就是一个特定频率的无线电波,单位Hz。在无线通信技术上我们使用载波传递信息,将数字信号调制到一个高频载波上然后再在空中发射和接收。所以载波是传送信息(话音和数据)的物理基础,最终的承载工具。形象的说载波就是一列火车,用户的信息就是货物。
7
关于 uart_tb的写法
 1 定义一个写了数字的 .txt文件
 2 代码:

module uart\_tb;
reg sclk;
reg s\_rst\_n;
reg rx;
reg \[7:0\] a\[255:0\];
wire tx;
defparam uart\_inst.tx\_module1.BAUT\_CNT = 52;
defparam uart\_inst.rx\_module1.BAUT\_CNT = 52;
  initial
          begin
        $readmemh("num.txt",a);
        sclk = 1;
        s\_rst\_n = 0;
        \#30 s\_rst\_n = 1;
        end
always \#5 sclk = ~sclk;
initial
        begin
                rx <= 1'b1;
                \#200 rx\_byte();
        end
task rx\_byte();
        integer j;
        for(j=0;j<10;j=j+1)
        rx\_bit(a\[j\]);
endtask
task rx\_bit(input \[7:0\]data);//把数字转化为 rx帧
        integer i;
        for (i = 0;i < 10;i = i+1)
                begin
                case(i)
                0:rx <= 1'b0;
                1:rx <= data\[0\];
                2:rx <= data\[1\];
                3:rx <= data\[2\];
                4:rx <= data\[3\];
                5:rx <= data\[4\];
                6:rx <= data\[5\];
                7:rx <= data\[6\];
                8:rx <= data\[7\];
                9:rx <= 1'b1;
                endcase
                \#520;
                end
endtask
uart uart\_inst(
.sclk (sclk ),
.s\_rst\_n (s\_rst\_n ) ,
.rx\_data\_in(rx) ,
                      
.po\_tx(tx)
);
endmodule

作业:
2 精简帧协议

 

博主
西西在冰城
西西学FPGA
不想学口译的电工不是好的ICer
点击跳转