URAT VHDL程序与仿真(2)
来源:互联网 发布:java easyuitree树 编辑:程序博客网 时间:2024/05/02 16:19
1. 顶层程序与仿真
(1)顶层程序
--文件名:top.vhd。
--功能:顶层 射。
--最后修改日期:2004.3.24。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity top is
txdbuf_in:in std_logic_vector(7 downto 0);
end top;
architecture Behavioral of top is
component reciever
end component;
component transfer
end component;
component baud
end component;
signal b:std_logic;
begin
u1:baud port map(clk=>clk32mhz,resetb=>reset,bclk=>b);
u2:reciever port map(bclkr=>b,resetr=>reset,rxdr=>rxd,r_ready=>rec_ready,
u3:transfer port map(bclkt=>b,resett=>reset,xmit_cmd_p=>xmit_cmd_p_in,
end Behavioral;
2. 波特率发生器程序与仿真
(1)波特率发生器VHDL程序
--文件名:baud.vhd.
--功能:将外部输入的32MHz的信号分成频率为153600Hz的信号。
--最后修改日期:2004.3.24。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity baud is
end baud;
architecture Behavioral of baud is
begin
process(clk,resetb)
variable cnt:integer;
begin
end process;
end Behavioral;
3. UART发送器程序与仿真
(1)UART发送器VHDL程序
--文件名:transfer.vhd。
--功能:UART发送器。
--说明:系统由五个状态(x_idle,x_start,x_wait,x_shift,x_stop)和一个进程构成。
--最后修改日期:2004.3.24。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity transfer is
end transfer;
architecture Behavioral of transfer is
type states is (x_idle,x_start,x_wait,x_shift,x_stop);
signal state:states:=x_idle;
signal tcnt:integer:=0;
begin
process(bclkt,resett,xmit_cmd_p,txdbuf)
variable xcnt16:std_logic_vector(4 downto 0):="00000";
variable xbitcnt:integer:=0;
variable txds:std_logic;
begin
if xmit_cmd_p='1' then state<=x_start; txd_done<='0';
when x_start=>
if xcnt16>="01111" then state<=x_wait; xcnt16:="00000";
else xcnt16:=xcnt16+1; txds:='0'; state<=x_start;
end if;
when x_wait=>
if xcnt16>="01110" then
when x_stop=>
if xcnt16>="01111" then
end process;
end Behavioral;
4. UART接收器程序与仿真
(1)UART接收器VHDL程序
--文件名:reciever.vhd。
--功能:UART接受器。
--说明:系统由五个状态(r_start,r_center,r_wait,r_sample,r_stop)和两个进程构成
--最后修改日期:2004.3.24。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity reciever is
generic(framlenr:integer:=8);
end reciever;
architecture Behavioral of reciever is
type states is (r_start,r_center,r_wait,r_sample,r_stop);
signal state:states:=r_start;
signal rxd_sync:std_logic;
begin
pro1:process(rxdr)
begin
end process;
pro2:process(bclkr,resetr,rxd_sync)
variable count:std_logic_vector(3 downto 0);
variable rcnt:integer:=0;
variable rbufs:std_logic_vector(7 downto 0);
begin
if rxd_sync='0' then state<=r_center; r_ready<='0'; rcnt:=0;
when r_center=>
if rxd_sync='0' then
else count:=count+1; state<=r_center;
end if;
when r_wait=>
if count>="1110" then
if rcnt=framlenr then state<=r_stop;
when r_sample=>rbufs(rcnt):=rxd_sync; rcnt:=rcnt+1;state<=r_wait;
end process;
end Behavioral;
- URAT VHDL程序与仿真(2)
- URAT
- 使用VCS MX仿真VHDL
- EDA与VHDL作业(2)
- EDA与VHDL作业(5)- 2
- TEXTIO及其在VHDL仿真中的应用
- VHDL语言testbench仿真的例子
- 第一个VHDL程序
- 计数器的 VHDL 程序
- VHDL ADS8364采集程序
- ADS8364 VHDL程序正式版
- 数控程序的检验与仿真
- 数控程序的检验与仿真
- verilog与VHDL相比
- VHDL 枚举与数组
- VHDL inout与buffer
- FPGA与VHDL 小结
- 四选一选择器的 VHDL程序
- 【感怀】有故事的人
- JavaServer Pages Overview
- ASP.NET-GridView的分页功能
- ASP.NET-GridView的分页功能
- ASP.NET-GridView的分页功能
- URAT VHDL程序与仿真(2)
- 利用FPGA实现UART的设计
- 用 CPLD实现结构简单的键盘控制器
- 基于FPGA的UART接口开发
- 分频器的VHDL描述
- 详细讲解大型数据库的设计原则与开发技巧
- CVS安装配置与使用
- java 的clone
- 写在今天_一个疑惑_or_一个教训