集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1510|回复: 1

跪求帮助:关于VDHL的一段代码

[复制链接]
keledui 发表于 2011-1-4 14:30:59 | 显示全部楼层 |阅读模式
下面是我编写的串行接收数据部分,但是总是调不通,我用示波器量的输入信号及时钟都是正确的,但是我按照下面的程序将数据读入CPLD的缓冲区中,然后显示出来总是不正确,但是通过data_out将接收的数据转发出去,另一端用单片机接收却能接收到,实在找不出原因,望请大侠们帮我一下,非常感谢!

还有,下面的程序格式不知道怎么回事,改不好,麻烦一下考出去看一下吧,非常非常感谢!

data_rx:process(sck,data_in)
begin

if sck'event and sck = '0' then
data_in_buf(7 downto 0) <= data_in_buf(6 downto 0)& data_in;
end if;
end process data_rx;
data_show:process(data_in_buf)
begin
case data_in_buf(3 downto 0) is --ABCDEFG
when "0000" => show_pin <= "1111110";--0
when "0001" => show_pin <= "0110000";--1
when "0010" => show_pin <= "1101101";--2
when "0011" => show_pin <= "1111001";--3
when "0100" => show_pin <= "0110011";--4
when "0101" => show_pin <= "1011011";--5
when "0110" => show_pin <= "1011111";--6
when "0111" => show_pin <= "1110000";--7
when "1000" => show_pin <= "1111111";--8
when "1001" => show_pin <= "1111011";--9
when "1010" => show_pin <= "1110111";--A
when "1011" => show_pin <= "0011111";--B
when "1100" => show_pin <= "1001110";--C
when "1101" => show_pin <= "0111101";--D
when "1110" => show_pin <= "1001111";--E
when "1111" => show_pin <= "1000111";--F
when others => show_pin <= "0000000";-->turn off
end case;
end process data_show;       
data_out <= data_in_buf(0); -- 发送数据赋值
我用的CPLD 为XC9572xl-10,再次感谢。
xilinx 发表于 2011-1-7 23:25:39 | 显示全部楼层
不知道你想得到什么结果。从程序上看,你每输入1bit数据,显示就会改变,
比如说,你向它发“1010”,(假设一开始data_in_buf=“00000000”),那就会先后显示0,1,2,5,a。不知道你想显示什么东西,你没把问题说清楚。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-29 01:25 , Processed in 0.057296 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表