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一根输入线怎么让它数据稳定下来的主要内容,如果未能解决你的问题,请参考以下文章