- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA的并串转换(状态机)
基于FPGA的并串转换(状态机)
端口说明:
ale:单片机发送数据标志位
clk:输入时钟
clr:清零,低电平有效
data_p0:地址端口(由图可得,这里FPGA的地址
数据低八位
Data_p2:数据高八位(这里需要进行串化的并行数据为P2P0,图中为1011011001001101)
wr:写使能,低有效
q:串行输出
s_clk:串行输出同步脉冲
ld:并串转换结束标志
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity chuanchu is
port(clk:in std_logic;
clr:in std_logic;
ale:in std_logic;
data_p0:in std_logic_vector(7 downto 0);
data_p2:in std_logic_vector(7 downto 0);
ld:buffer std_logic;
wr:in std_logic;
q:out std_logic;
s_clk:buffer std_logic);
end entity chuanchu;
architecture art of chuanchu is
signal ram_addr:std_logic_vector(7 downto 0);
type state is(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17);
signal c_s,n_s:state;
signal reset:std_logic;
signal temp:std_logic_vector(15 downto 0);
begin
process(clk)
begin
if(ale=1and wr=1)then
ram_addr=data_p0;
end if;
end process;
process (ale,wr,ram_addr) is
begin
if clr=0 then
reset=0;
end if;
if(ram_addrnd ale=0and wr=0)then
temp=data_p2data_p0;reset=1;
end if;
end process;
process(RESET,CLK)is
begin
if clr=0 then c_s=s0;
elsif(clkevent and clk=1)then
c_s=n_s;
end if;
end process ;
com:process(c_s)is
begin
if clr=0 then
ld=0;
end if;
if(reset=1 and ld=0)then
n_s=s1;
else
n_s=s0;
end if;
case c_s is
when s0=q=0;s_clk=0;
when s1=Q=temp(15);s_clk=clk;
n_s=s2;
when s2=q=temp(14);s_clk=clk;
n_s=s3;
when s3=q=temp(13);s_clk=clk;
n_s=s4;
when s4=q=temp(12);s_clk=clk;
n_s=s5;
when s5=q=temp(11);s_clk=clk;
n_s=s6;
when s6=q=temp(10);s_clk=clk;
n_s=s7;
when s7=q=temp(9);s_clk=clk;
n_s=s8;
when s8=q=temp(8);s_clk=clk;
n_s=s9;
when s9=q=temp(7);s_clk=clk;
n_s=s10;
when s10=q=temp(6);s_clk=clk;
n_s=s11;
when s11=q=temp(5);s_clk=clk;
n_s=s12;
when s12=q=temp(4);s_clk=clk;
n_s=s13;
when s13=q=temp(3);s_clk=clk;
n_s=s14;
when s14=q=temp(2);s_clk=clk;
n_s=s15;
when s15=q=temp(1);s_clk=clk;
n_s=s16;
when s16=q=temp(0);s_clk=clk;
n_s=s17;
when s17=q=0;
n_s=s0;
ld=1;
end case;
end process;
end archi
文档评论(0)