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程序的要求完成门电路的连接。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)