重金求基于FPGA的8位串并转换vhdl语言的代码! library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity sc isport(clk,rxd:in std_logic;data:out std_logic_vector(7 downto 0));end sc;architecture rt8251 of sc issignal count:std_logic_vector(3 downto 0):=\"0000;signal do_latch:std_logic_vector(7 downto 0);signal d_fb:std_logic_vector(9 downto 0);signal rxdf:std_logic;signal rdfull:std_logic:='0';begindata;P1:process(clk)beginif(clk'event and clk='1')thenif((rxdf='1')and(count=\"1000\"))thendo_latch(7 downto 0)(7 downto 0);rdfull;end if;end if;end process p1;p2:process(clk)beginif(clk'event and clk='1')thenif(rxd='0')thenrxdf;elsif((rxdf='1')and(count=\"1000\"))thenrxdf;end if;end if;end process p2;p3:process(clk)variable scir:integer range 0 to 8;variable scis:std_logic_vector(3 downto 0);beginif(clk'event and clk='1')thenif(rxdf='1')thenscir:=scir+1;elsescir:=0;end if;end if;scis:=conv_std_logic_vector(scir,4);count;end process p3;p4:process(clk)begincase 。
用vhdl语言把八位二进制转换为十进制,怎么输出的是十六进制啊 首先我们要明确我们要干什么。我猜你是想把二进制码转成十进制的BCD码。如果你是这么想的话,那你低估这个问题的复杂程度了。你的程序我仿真的时候有点问题(可能是我的ISE仿真程序对端口表中的interger仿真不支持的缘故),所以我改动了一下。在下面这个程序的仿真输出中,你可以看到自己的程序其实等同于把输入和输出短接,其实没有意义。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CH17 ISPORT(OP:IN STD_LOGIC_VECTOR(7 downto 0);result:out STD_LOGIC_VECTOR(7 downto 0)end ch17;architecture maxpld of ch17 issignal tb:integer range 0 to 255;beginprocess(op)variable tmp:integer:=0;beginfor i in 7 downto 0 looptmp:=tmp*2;if(op(i)='1')thentmp:=tmp+1;end if;end loop;tb;end process;result(tb,8);end maxpld;做这个有很多方法。下面我用查表法来做。总体是把源数据分成高四位和低四位。然后对高四位利用查表法进行转换(只做了一百以内的),然后和低四位进行加法,此时进行所谓的十六进制加法的十进制调整。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE。.
求一串并(3位)转换模块参考VHDL源程序; library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity serial2parallel is Port(clk,rst:in STD_LOGIC;serial_in:in STD_LOGIC;parallel_out:out STD_LOGIC_VECTOR(2 downto 0。