FPGA语言VHDL中,串口接受到一组数据,将这组数据分解成一份一份实数,再将这些实数带入到未知参数中。

FPGA语言VHDL中,串口接受到一组数据,将这组数据分解成一份一份实数,再将这些实数带入到未知参数中。,第1张

既然固定值可以,那就说明

h_pixel:=conv_integer(h_pixel_data) --h_pixel_data是串口接受的数据

v_pixel:=conv_integer(v_pixel_data) --v_pixel_data是串口接受的数据

出问题了。

B <= conv_integer(A) --将std_logic_vector的A转换成整数integer的B

记得USE IEEE.STD_LOGIC_ARITH.ALL;

以下程序中,clk为采样时钟(同步时钟),din为串行输入的数据,dout(7 downt 0)为并行输出的八个口,

变量i 是作为计数用的,每当clk上升沿采样八次后,将数据并行输出,

变量t 是每用作每次采样时,暂存数据用的,

LIBRARY IEEE

USE IEEE.STD_LOGIC_1164.ALL

ENTITY s234 IS

PORT(

clk,din:in std_logic

dout:out std_logic_vector(7 downto 0)

)

end entity s234

architecture behave of s234 is

begin

process(clk)

variable i:integer range 0 to 8

variable t:std_logic_vector(7 downto 0)

begin

if clk = '1' then

t(7 downto 0):=t(6 downto 0)&din

i:=i+1

if i=8 then

dout<=t

i:=0

end if

end if

end process

end architecture behave

其实他们说的都不是很好,我是做FPGA的,应该这样说现在的控制芯片分为两大类,一类是软件编程的(如单片机,ARM,DSP)还有一类是硬件编程的(如FPGA,CPLD)。他们有什么区别,单片机等是通过执行程序来做事的,但FPGA不同,我们用VHDL语言编程,下载后不是让FPGA执行程序,而是通过程序改变FPGA内部电路。使FPGA变成我们设计的那种电路图,C语言等是软件语言,芯片执行的时候是一条条执行,而VHDL是硬件语言,执行的时候是并行的,就是所有的语句块同时执行。VHDL是一种语言,是一种硬件语言,可以编出我们要的电路图。FPGA是一种芯片,里面全是门电路,触发器,通过VHDL程序的要求完成门电路的连接。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12014463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存