此帖出自FPGA/CPLD论坛
最新回复
這是我用的串口通信碼:
`timescale 1ns / 1ps
module serialfun(clk, RxD, TxD, GPout, GPin);input clk;
input RxD;output TxD;
output [7:0] GPout;input [7:0] GPin;
///////////////////////////////////////////////////wire RxD_data_ready;wire [7:0] RxD_data;async_receiver deserializer(.clk(clk), .RxD(RxD), .RxD_data_ready(RxD_data_ready), .RxD_data(RxD_data));
reg [7:0] GPout;always @(posedge clk) if(RxD_data_ready) GPout <= RxD_data;
///////////////////////////////////////////////////async_transmitter serializer(.clk(clk), .TxD(TxD), .TxD_start(RxD_data_ready), .TxD_data(GPin));
endmodule
async_receiver, async_transmitter 可以在 http://www.fpga4fun.com/SerialInterface5.html 下載看到
以下是我寫的 testbench:
`timescale 1ns / 1ps
module serialfun_tb;
reg clk; reg RxD; reg [7:0] GPin; wire TxD; wire [7:0] GPout; /*wire [7:0] RxD_data; wire RxD_data_ready; parameter Baud =115200; parameter ClkFrequency =27000000; parameter Baud8 = Baud*8; parameter Baud8GeneratorAccWidth = 16; parameter Baud8GeneratorInc = ((Baud8<<(Baud8GeneratorAccWidth-7))+(ClkFrequency>>8))/(ClkFrequency>>7); reg [Baud8GeneratorAccWidth:0] Baud8GeneratorAcc;*/ parameter clkper = 37; serialfun uut ( .clk(clk), .RxD(RxD), .TxD(TxD), .GPout(GPout), .GPin(GPin) ); initial begin clk = 1; RxD = 0; GPin = 0; end always begin #(clkper); clk <= ~clk; end always begin #5; #100; RxD <= ~RxD; end
always begin #10 GPin = 8'h01; #10 GPin = 8'h02; #10 GPin = 8'h04; #10 GPin = 8'h08; #10 GPin = 8'h10; #10 GPin = 8'h20; #10 GPin = 8'h40; #10 GPin = 8'h80; end endmodule
不知道少了什麼, output都沒有東西? 謝謝
详情
回复
发表于 2010-6-28 10:17
| ||
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/ 欢迎光临网上店铺! |
||
| |
|
|
此帖出自FPGA/CPLD论坛
赞赏 | ||
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
=================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰 |
||
此帖出自FPGA/CPLD论坛
| ||
|
||
| |
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
=================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰 |
|
此帖出自FPGA/CPLD论坛
| ||
|
||
EEWorld Datasheet 技术支持