fpga一根输入线怎么让它数据稳定下来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fpga一根输入线怎么让它数据稳定下来相关的知识,希望对你有一定的参考价值。

fpga一根输入线让它数据稳定下来的办法,FPGA的程序最终是要固化到硬件上,设计FPGA程序等同于设计一个PCB,或者设计一个芯片,该芯片的一切功能都是由你来控制的。FPGA也是一个芯片,芯片工作的最基本的前提,就是保证电压的正确性。 参考技术A 有如下几个原因:
1、组合逻辑太多,在FPGA设计时应该减少使用组合逻辑,组合逻辑太多会导致关键路径过长,出现亚稳态的情况
2、FPGA IO不稳定,建议在IO口加buffer对数据进行缓存

FPGA的学习:3线8线译码器的实现

首先来看系统框图和原理图。

输入信号有三个,然后2的3次方是8,所以输出有8个。

了解了时序后,对功能进行编码实现。

`timescale  1ns/1ns

module  decoder3_8
(
    input   wire            in1 ,   //输入信号in1
    input   wire            in2 ,   //输入信号in2
    input   wire            in3 ,   //输入信号in2

    output  reg     [7:0]   out     //输出信号out
);

//out:根据3个输入信号选择输出
always@(*)
    case({in1, in2, in3})
        3'b000 : out = 8'b0000_0001;        
        3'b001 : out = 8'b0000_0010;
        3'b010 : out = 8'b0000_0100;
        3'b011 : out = 8'b0000_1000;
        3'b100 : out = 8'b0001_0000;
        3'b101 : out = 8'b0010_0000;
        3'b110 : out = 8'b0100_0000;
        3'b111 : out = 8'b1000_0000;
        default: out = 8'b0000_0001;      //这边的default状态可以指向其他的
    endcase

endmodule

 

完成代码实现后,进行仿真。

`timescale  1ns/1ns

module  tb_decoder3_8();

//wire型变量的定义

wire    [7:0]   out;

//reg型变量的定义

reg             in1;
reg             in2;
reg             in3;

//初始化输入信号
initial begin
    in1 <= 1'b0;
    in2 <= 1'b0;
    in3 <= 1'b0;
end

//in1:产生输入随机数,模拟输入端1的输入情况
always #10 in1 <= {$random} % 2;

always #10 in2 <= {$random} % 2;

always #10 in3 <= {$random} % 2;

initial begin
    $timeformat(-9, 0, "ns", 6);
    $monitor("@time %t: in1=%b in2=%b in3=%b out=%b", $time, in1, in2, in3, out);
end

//实例化

decoder3_8  decoder3_8_inst(
    .in1    (in1),  //input             in1
    .in2    (in2),  //input             in2
    .in3    (in3),  //input             in3

    .out    (out)   //output    [7:0]   out
);

endmodule

 

以上是关于fpga一根输入线怎么让它数据稳定下来的主要内容,如果未能解决你的问题,请参考以下文章

两台电脑之间怎么用一根网线传输数据

FPGA的学习:3线8线译码器的实现

74HC165数据错误很多

耳麦应该怎么插

FPGA与DSP相连的问题,跪求大神解决之~~

深入解析内存原理:SRAM的基本原理