在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4215|回复: 2

求助:用VHDL设计串并转换模块

[复制链接]
发表于 2009-5-4 21:22:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
怎样用VHDL在QuartusII中设计一个9600HZ的时钟?

另外有没有达人可以给出下列底层模块的顶层文件,也是VHDL
发送模块:
library ieee;
use ieee.std_logic_1164.all;
entity syn_s IS
port(clk:in std_logic;
Send_data:in std_logic_vector(7 downto 0);
serialut std_logic);
end syn_s;
architecture syn_s_a of syn_s is
signal Send:std_logic_vector(7 downto 0):="01111110";
begin
process(clk)
variable count:integer range 0 to 15:=0;
begin
if rising_edge(clk)then
if count=15 then serial<=Send_data(7);count:=0;
else
if(count<8)AND(count>=0)
then serial<=Send(count);
count:=count+1;
else
if(count<15)AND(count>=8)
then serial<=Send_data(count-8);count:=count+1;
else count:=0;
end if;
end if;
end if;
end if;
end process;
end syn_s_a;


波特率发生器和采样时钟:
library ieee;
use ieee.std_logic_1164.all;
entity count is
port(clk:in std_logic;clok1,clok2ut std_logic);
end count;
architecture count_a of count is
begin
process(clk)
variable count:integer range 0 to 625:=0;
begin
if rising_edge(clk)then count:=count+1;
if count=625 then clok1<='1';
count:=0;
else clok1<='0';
end if;
if(count=106 or count=313 or count=520)
then clok2<='1';
else clok2<='0';
end if;
end if;
end process;
end count_a;


接受模块:
library ieee;
use ieee.std_logic_1164.all;
entity syn_r is
port(serial,clok1,clok2:in std_logic;
P:inout std_logic_vector(7 downto 0):="11111111";
Dut std_logic_vector(0 to 7));
end syn_r;
architecture syn_r_a of syn_r is
signal C:std_logic_vector(0 to 2):="000";
signal M:std_logic;
begin
process(clok1)
variable N:integer range 0 to 7:=0;
variable flag:std_logic:='0';
constant R:std_logic_vector(7 downto 0):="11111111";
constant A:std_logic_vector(7 downto 0):="01111110";
begin
if rising_edge(clok1)then
M<=(C(0)and C(1))or(C(1)and C(2))or(C(0)and C(2));
if flag='1'then D(N)<=M;
if N=7 then N:=0;flag:='0';else N:=N+1;
end if;
else P<=M&(7 downto 1);
if(P=A)then flag:='1'<=R;
end if;
end if;
end if;
end process;
process(clok2)
variable i:integer range 0 to 2:=0;
begin
if rising_edge(clok2)then C(i)<=serial;
if i=2 then i:=0;else i:=i+1;
end if;
end if;
end process;
end syn_r_a;
发表于 2009-5-4 23:57:15 | 显示全部楼层

缘之秀健康美容-开创世纪新纪元

缘之秀健康美容SPA养生馆是一种全新的、自然的女性的充电站,畅导女性健康美的新概念,全方位打造女性的整体形象,铸就女性的完美一生。缘之秀健康美容SPA养生馆已经成为女性减压和美化心情的重要生活相关场所。带给女性以整体性的美容生活新体验:劳累之余流连缘之秀健康美容SPA养生馆,如梦如幻、全神放松,静静的品位那芬芳、神奇的自然气息,让思绪在轻柔的流水中漂向远方,肌肤如玫瑰花瓣柔滑细腻,那属于传说中的美丽,终于不再遥不可及。缘之秀缘之秀缘之秀
发表于 2009-5-14 18:11:59 | 显示全部楼层
:O
;p
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 08:38 , Processed in 0.030563 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表