并串转换的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的时候立即进行复位,不能转换最后一个数据。
解决的办法是使用非阻塞赋值符号“<=”,即可实现正常转换。
一直没有好好理解。
学习学习了
好多大侠!
学习学习了
这个不是随你怎么写吗?
好好学习啊