fpga/cpld为核心的数字系统
一. 课程内容:设计并制作一个以fpga/cpld为核心的数字系统,培养综合应用各种知识设计电子系统的能力。
二. 基础知识:protel 数字电路 、EDA与VHDL语言。
三. 设计内容:一个简单的秒计数器
以绘制PCB板图,腐蚀覆铜板制作电路板焊接元件并调试电路,最后对CPLD编程下载实现秒计数器功能。
1)在机房讲解理论并用protel软件完成实验原理图及PCB板图的设计;
2)在实验室腐蚀电路板并焊接调试;
3)在机房编程下载实现秒计数器功能。
四. 设计要求:通过按键控制计数和停止;用一个led表示计数和停止状态。下载电路和核心部分各作一块15×10CM的覆铜板。核心板线宽20mil,间距10mil。过引脚的地方线宽可以为10mil。使用热转移纸。下载线电路线宽30mil 间距30mil。使用普通打印纸。布线不通可以拉飞线。
五. 秒计数器的器件:epm7128slc84一片,核心芯片;usb b型弯针接口一,从电脑取电;共阳一位数码管1,显示秒计数;led1,显示计数和停止状态;按键开关1,开关计数状态;10针接口2,连接核心板和下载电路;74hc244一个,驱动下载电路并口弯针公头1,连接电脑和下载电路。
辣. 实验部分代码及原理图:
1)实验部分代码如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity lled is
port(clk:in std_logic;
st:in std_logic;
stout :out std_logic;
dout:out std_logic_vector(6 downto 0) );
end lled;
architecture hav of lled is
signal q:std_logic_vector(6 downto 0);
signal d:std_logic_vector(3 downto 0);
signal streg:std_logic;
begin
stout<= not streg;
process(st)
begin
if st'event and st='1' then streg<= not streg;
end if; end process;
process(clk)
begin
if clk'event and clk='1' then
if streg='1' then
if d="1001" then d<="0000";
else d<=d+1;
end if; end if; end if; end process;
751com.cn",
"1111001" when "0001",
"0100100" when "0010",
"0110000" when "0011",
"0011001" when "0100",
"0010010" when "0101",
"0000010" when "0110",
"1111000" when "0111",
"0000000" when "1000",
"0010000" when others;
dout<=q;
end hav;
2)实验核心板原理图:
3)下载电路原理图:
七.心德与体会:通过这次实验,我初步了解了一般FPGA的设计,重新温故了电路图的绘制以及焊接等电路板的设计过程,为以后的毕业设计打下基础,更深地学习有关的知识188