微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 并串转换的verilog例子?

并串转换的verilog例子?

时间:10-02 整理:3721RD 点击:
请问那位大侠有并串转换的verilog例子? 是不是可以共享给我这个初学者,不胜感激!

并串转换的verilog例子?
在这里先搜索一下吧,以前的程序应该给出过的。

并串转换的verilog例子?
多谢小编,可是我只搜索到一个帖子,而且讲的好象对我来说太简单了,我这里要实现的主要是对前端的8bits的数据流进行从LSB到MSB的1bit 输出,我的代码如下,请帮忙看看那里错误的!
module p2s(clk,rst,datain,shift_en,shift_bit,data_rdy)
input clk,rst;
input shift_en;
input [7:0] datain;
output shift_bit;
output data_rdy;
reg [2:0] cnt;
reg shit_bit;
reg data_rdy;
always @(posedge clk or negedge rst)
begin
  if(!rst)
begin
  shift_bit=0;
  data_rdy=0;
  cnt=0;
end
else
begin
  if(shift_en)
  begin
    shift_bit=data_in[cnt];
    cnt=cnt+1;
    if(cnt==7)
    begin
      data_rdy=1;
      cnt=0;
    end
    else
    begin
       data_rdy=0;
    end
  end
end
end
endmodule
测试的结果数据没有正确的,不知道错误在那里,请高手帮忙指导.....多谢多谢!

并串转换的verilog例子?
问题已经解决了,是没有很好的理解wire / reg的功能,多谢支持!

并串转换的verilog例子?
呵呵,不客气。

好多错误呢?怎么回事

夏宇闻的资料上好像有吧

很多语法错误,最主要的逻辑错误在于8个bit只有7个bit被正常转换,cnt的最后一个状态用来复位,没有用于转换数据。
产生这种状态的原因是由于使用了阻塞赋值“=”,在最后一词cnt增加时,后面的 if 判断会等待cnt完成增加后才进行,导致cnt增加到7的时候立即进行复位,不能转换最后一个数据。
解决的办法是使用非阻塞赋值符号“<=”,即可实现正常转换。

一直没有好好理解。

学习学习了

好多大侠!

学习学习了

这个不是随你怎么写吗?

好好学习啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top