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

请教 VERILOG 并串转换程序问题

时间:10-02 整理:3721RD 点击:
module bt(xin,clk,fdata,start);
input clk;
input[1:0] xin;
input start;
output fdata;
wire[1:0] xin;
reg fdata;
integer qx=0;
always @(start or clk)
begin
        if(!start)
        fdata<=0;
        else
        begin
         if(clk==1)
         begin
                fdata<=xin[qx];
                qx<=(qx+1)%2;
         end
        end
end
endmodule

出错结果 现象: 输出串行数据一部分为未知数据XXXX?请高手看看哪里出问题了

没人回答。

学习!

无语了!

多看看书,想一想吧

你真把verilog当编程了。

这是啥鸟程序,XIN[]也没初值,仿真看个樢

有同步的clock信号,就不要用电平敏感的描述,应该用边沿敏感的方式,你中间的那一段应该改成这样:
  reg qx;
  always @(negedge start or posedge clk) begin
        if(!start)  begin
           fdata<=0;
           qx<=0;
        end
        else begin
          fdata<=xin[qx];
          qx<=qx+1;
        end
  end

最好写成沿触发

xuexizhong

用8楼的!

好好看看verilog。

if(clk==1) 去掉,因为clk已经出现在敏感列表中了

呵呵。

   start信号是一个局部信号,放在敏感列表是一个不好,或者错误的写法

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

网站地图

Top