这是一段4位二进制数转为2位十进制数,用两个数码管显示的代码,用的是cyclone2芯片。你参考一下。
module bin2dec(V,HEX1,HEX0);
input [3:0]V;
output
[0:6]HEX1,HEX0;
wire z; //comparator output
wire [2:0]a;
//circuit A output
wire [3:0]m;
//multiplexer output
comparator
C(V,z);
circuita
A(V[2:0],a);
mux_4b_2to1
M(V,{1'b0,a},z,m);
circuitb
B(z,HEX1);
btd
D(m,HEX0);
endmodule
module circuitb(z,seg);
input z;
output
[0:6]seg;
assign
seg[6]=1;
assign
seg[5]=z;
assign
seg[4]=z;
assign
seg[3]=z;
assign
seg[2]=0;
assign
seg[1]=0;
assign
seg[0]=z;
endmodule
module
mux_4b_2to1(x,y,s,m);
input [3:0]x;
input [3:0]y;
input s;
output
[3:0]m;
mux_2to1
u3(x[3],y[3],s,m[3]);
mux_2to1
u2(x[2],y[2],s,m[2]);
mux_2to1
u1(x[1],y[1],s,m[1]);
mux_2to1
u0(x[0],y[0],s,m[0]);
endmodule
module
mux_2to1(a,b,s,m);
input a,b,s;
output m;
assign
m=sb:a;
endmodule
module
circuita(v,a);
input [2:0]v;
output [2:0]a;
assign
a[2]=v[2]&v[1];
assign
a[1]=v[2]&~v[1];
assign
a[0]=(v[1]&v[0])|(v[2]&v[0]);
endmodule
//circuit
comparator
module
comparator(v,z);
input [3:0]v;
output z;
assign
z=(v[3]&v[2])|(v[3]&v[1]);
endmodule
随着数字技术的飞速发展,各种数字显示屏也随即涌现出来有LED、LCD、DLP等,各种数字大屏幕的控制系统多种多样,有用ARM+FPGA脱机控制系统,也有用PC+DVI接口解码芯片+FPGA芯片联机控制系统,在这里我们讲述一种不仅可以用于控制全彩LED大屏幕的显示,而且还可以作为发送端输出高清图像数据。采用的联机控制系统对全彩LED大屏幕进行控制。即PC+DVI接口解码芯片+FPGA芯片+输出接口模式的联机控制系统。
DVI接口概述
DVI全称为DigitalVisualInterface,它是基于TMDS(TransitionMinimizedDifferentialSignaling,最小化传输差分信号)电子协议作为基本电气连接。TMDs是一种微分信号机制,可以将像素数据编码,并通过串行连接传递。显卡产生的数字信号由发送器按照TMDS协议编码后通过TMDS通道发送给接收器,经过解码送给数字显示设备。目前的DVI接口分为两种,一个是DVI-D接口,只能接收数字信号,接口上只有3排8列共24个针脚,其中右上角的一个针脚为空,不兼容模拟信号。另外一种则是DVI-I接口,可同时兼容模拟和数字信号。兼容模拟幸好并不意味着模拟信号的D-Sub接口可以连接在DVI-I接口上,而是必须通过一个转换接头才能使用,一般采用这种接口的显卡都会带有相关的转换接头。本文叙述中用到的接口是DVI-D全数据接口。
FPGA控制金彩LED大屏幕系统原理
1 DVI解码芯片控制原理 输入部分显示了FPGA芯片控制解码芯片控制原理图,所选的FPGA芯片是Xilinx公司的Spantan_3系列的X3c1400A-5,该芯片可以实现对DDR_SDRAM最大时钟为200MHz的控制。在该系统中用到的DVI解码芯片是TI公司生产的芯片型号为tfp401的解码芯片,该芯片通过接收由计算机DVI接口传输来的编码图像数据,输出到DVI解码芯片,该芯片将串行数据解码成24位的R(Red)、G(Green)、B(Blue)三原色并行数据,以及行同步、场同步、数据使能和时钟信号,然后将解码后的RGB图像数据、行同步、场同步、数据使能和时钟控制信号送给FPGA芯片,将图像数据缓冲到FPGA芯片的FIFO中,在这里须注意,当采集图像的分辨率很大时,该数据传输的时钟信号最高可达到165MHz,输出的并行图像数据为24位的数据,所以最大带宽可达到396GHz,在选取外部存储器是须考虑带宽的要求。DDC:DisplayDataChannel(显示数据通道)――指主机与显示设备的通讯方式。基于End-user的即插即用功能的需求,VESA定义了DDC标准。包含DDCl/DDC2B/DDC2B+等方式。DDC2B是主机与显示设备准双向通信,基于FC通信协议。只有主机向显示器发出需求信号,并得到显示器的响应后,才送出EDID资料。EDID:ExtendedDisplayIdentificationData(外部显示设备标志数据)――指DDC通信中传输的显示设备数据。EDID包含显示设备的基本参数,如制造厂商、产品名称、最大行场频、可支持的分辨率等。图中的E2PROM是一个重要的存储器,存储由计算机传来的制造厂商、产品名称、最大行场频、可支持的分辨率等参数,只有该存储器工作起来后,DVI接口才可以正常工作,该存储器显示数据通道为DDC,在这里与DVI接口插上时,该处有个上拉电阻进行指示,计算机会自动将各种参数输入到该存储器,这样才可以从DVI接口输出以各种参数为标准的图像数据。
2 选取存储图像数据的缓冲存储器根据上述采集图像数据的带宽要求,在这里用的是DDR-SDRAM存储器,时钟最大为200MHz,数据位宽为16位,所以,最高带宽可达到64GHz,利用率达到65%即可满足上述DVI接口芯片输入到FPGA芯片的带宽要求。由于从DVI芯片输入到FPGA芯片的图像数据最大的时钟是165MHz,与输出到DDR-SDRAM存储器的时钟频率200MHz不同步,所以,在这里FPGA芯片中要用到异步FIFO进行缓冲,将从DVI解码芯片输入的图像数据缓冲到宽度为24位,深度为2048的FIFO中,其中输入时钟根据输入的图像分辨率计算得出,最大可输出的时钟为165MHz,然后再从FIF0缓冲期将数据输出到DDR-SDRAM存储器,其中输出到DDR-SDRAM的图像数据的时钟为200MHz,输出的时钟为双数据率始终,即数据有效时钟可达到400MHz,再将DDR-SDRAM存储器中的图像数据输出到FPGA芯片中,在这里输出到FPGA芯片的缓冲阶段,需要借助FIFO对输出到外部接口芯片进行缓冲。
3 图像处理由于人眼看到的图像亮度是非线性等级的,该系统的输出到存储器的图像是线性的,所以需进行校正处理,在这里运用了gamma校正算法进行处理,Y=KX,FPGA芯片对gamma校正的实现过程就是进行数据的映射,对从FIFO输出到外部接口的图像数据进行数据的一一映射。得到输出图像,从输出接口将校正后的图像数据输出到外部器件。
4 应用于不同领域的两种输出接口模式①FPGA芯片输出端连接驱动电流芯片该接口的使用适合于输出的是多路驱动电流芯片,用FPGA芯片输出管脚时序控制多路外部驱动电流芯片,驱动电流芯片再对RGB发光二极管进行控制,最后将整个电脑想要显示的图像显示到大屏幕LED上。②接收端为以太网线的接口该接口适合于对一路输XDVI解码芯片接口图像的输出,该接口可以用于远距离传输图像信息,应用于大屏幕的LED的显示。
显示设备采用DVI接口优点
DVI传输的是数字信号,数字图像信息不需经过任何转换,就会直接被传送到显示设备上,减少了数字向模拟再到数字烦琐的转换过程,大大节省了时间,因此它的速度更快,能有效消除拖影现象,使用DVI进行数据传输,信号不衰减,色彩更纯净,更逼真。计算机内部传输的是二进制的数字信号,使用VGA接口连接全彩LED大屏幕显示器,就需要先把信号通过显卡中的D/A转换器转变为R、G、B三原色信号和行、场同步信号,这些信号通过模拟信号线传输到全彩LED大屏幕上,还需要相应的A/D转换器将模拟信号再一次转变成数字信号,才能在全彩LED大屏幕上显示出图像。在上述的D/A、A/D转换和信号传输过程中不可避免信号的损失和受到干扰,从而导致图像出现失真甚至显示错误。DVI接口无须进行这些转换,避免了信号的损失,使图像的清晰度和细节表现力都得到了大大的提高。
结束语
该设计系统实现的FPGA芯片控制全彩大屏幕的图像显示系统,不仅可以用于小尺寸分辨率(256×192)的全彩LED大屏幕控制系统的显示,还可以远距离的以太网传输图像数据,将该图像数据发送到多块接收模板,多块接收板的拼接可以用于显示分辨率(1920×1280)的高清彩色图像的大屏幕。
你好!
首先先确定DS90CR工作正常。然后再验证FPGA的程序。你提供的信息太少了,可以的话,在FPGA里用chipscope抓下输出波形贴上来看下。当然,最好的是直接用示波器看了。
如果对你有帮助,望采纳。
你玩过简单的单片机吗?
如果是,那就很清楚了。单片机的仿真机,就是由电脑经过下载线下载程序到仿真机上。
而仿真机就能按照你设定的程序的顺序RUN。。
同样的,这种方法,一样适用到任何开发板上的。
所以说,8951,AVR,PIC,CPLD/FPGA,DSP,ARM,MIPS,PPC,只要是开发板,就都是一样的方法。
不对,你的方法不是这样的??我刚没看明白。
你是要把开发板的VGA接口,连接到笔记本的“VGA输出接口”??
然后,在笔记本本身的液晶显示器上,看到自己用FPGA写的程序的现象??
是不是这样??
这样是不对的,笔记本的“VGA接口”是输出型态的。
开发板的VGA接口,是要连接到另一台VGA显示器的“输入接口”。。
以上就是关于如何让FPGA卡上的数码管显示数字全部的内容,包括:如何让FPGA卡上的数码管显示数字、led全彩电子大屏幕【一种基于FPGA控制全彩大屏幕显示的设计】、FPGA驱动LCD显示器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)