verilog 并行输入转 串行输出 verilog中将2048位并行数据串行输出

\u7528Verilog\u7f16\u51998bit\u5e76\u884c\u8f93\u51651bit\u4e32\u884c\u8f93\u51fa\u7684\u63a5\u53e3\u8f6c\u6362\u6a21\u5757\u3002

always @(posedge clk)
begin
Bits8_in_reg<= Bits8_in;

Bits8_in_reg<= {Bits8_in_reg[6:0],1'b0}; //\u4ece\u9ad8\u4f4d\u5230\u4f4e\u4f4d\u53d1\u7684\u987a\u5e8f
end
assign serial_line = Bits8_in_reg[7];

\u4ec0\u4e48\u610f\u601d 2048\u4f4d\u8981\u76f4\u63a5\u5e76\u884c\u4ece\u5916\u8bbe\u8fde\u63a5\u5230FPGA\u4e0a\u5417\uff1f\u4e0d\u53ef\u80fd\u5427 \u8fd8\u662fFPGA\u91cc\u4ea7\u751f\u4e862048\u4f4d\u6570\u636e \u7136\u540e\u8981\u4e32\u884c\u9001\u51fa\u53bb

思想如下:时钟频率肯定是外部输入的,具体的输出采样数据的频率控制可以另外加一个时钟使能信号来加以控制,然后在每个时钟上升沿进行判断,输出数据赋值并且输入并行数据进行移位操作,里面有两个计数器来控制时序,一个计数器cnt2由另外一个cnt1触发,下面的是从低到高的输出,如果你想从高到底的输出,可以将data[7]输出,然后将移位反向,思想是这样的,没经过仿真,只是想着写的
module shift(rst_n,clk,data_in,data_out);
input rst_n;
input clk;
input [7:0]data_in;
output data_out;
//下面clk_en为控制输出数据以及并行数据移位的频率控制,比如外部时钟为25us,那么你说的
//5s就是200个cycle,要传送8bit数据,就是25个时钟传送一位,输入数据的频率得由外面保证
reg [4:0]cnt1;
reg [3:0cnt2;
reg [7:0]data;
//计数器cnt1的作用是产生25个时钟一变的时钟使能,控制内部变化频率
always @(posedge clk or negedge rst_n)
begin
if(rst_n == 1'b0)
cnt1 <=0;
else if(cnt=24)
cnt1 <=0;
else
cnt 1<=cnt1+1;
end
always @(posedge clk or negedge rst_n)
begin
if(rst_n == 1'b0)
cnt2 <=0;
else if(cnt2=4'b1000)
cnt2 <=0;
else if(cnt1=24)
cnt 2<=cnt2+1;
end
always @(posedge clk or negedge rst_n)
begin
if(rst_n == 1'b0)
data <= 8'b0;
else if(cnt2==4'b0)
data <= data_in;
else if(cnt1==24)
data <={1'b0,data[7:1]};
end
always@(posedge clk or negedge rst_n)
begin
if(rst_n == 1'b0)
data_out <= 1'b0;
else if(cnt1=0)
data_out <= data[0];
end
always @(posedge clk or negedge rst_n)
begin
f(rst_n == 1'b0)
data <= 1'b0;
else if(cnt1=0)
data_out <= data[0];
end
endmodule

将输入的并行数据暂存在内部寄存器里,然后一位位地输出,输出8位后,再将外部数据拿进来更新,再输出。这样循环进行。

扩展阅读:verilog casez ... verilog 并行块 ... verilog 并行除法器 ... 能够编写verilog的软件 ... verilog ifdef endif ... 对verilog并行的理解 ... verilog课后题答案 ... verilog 四位并行加法器 ... verilog键盘控制 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网