EDA中用VHDL语言编程的实验doc.docx
- 文档编号:16329981
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:15
- 大小:702.95KB
EDA中用VHDL语言编程的实验doc.docx
《EDA中用VHDL语言编程的实验doc.docx》由会员分享,可在线阅读,更多相关《EDA中用VHDL语言编程的实验doc.docx(15页珍藏版)》请在冰点文库上搜索。
EDA中用VHDL语言编程的实验doc
EDA课程中VHDL的分频程序
(1)将32KHz分成1KHz占空比百分之五十
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYfenpinIS
PORT(CLK:
INSTD_LOGIC;
q:
OUTSTD_LOGIC);
ENDfenpin;
ARCHITECTUREarcOFfenpinIS
signalwire:
std_logic;
BEGIN
PROCESS(clk)
VARIABLEcnt:
INTEGERRANGE0TO31;
BEGIN
IFclk'EVENTANDclk='1'THEN
IFcnt<16THEN
cnt:
=cnt+1;
--ifcnt=7thenwire<='0';endif;可以通过这绿色字体修改占空比。
ELSE
cnt:
=0;
--q<='1';
wire<=notwire;
ENDIF;
ENDIF;
ENDPROCESS;
q<=wire;
ENDarc;
(2)9进制计数器
程序如下
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT9IS
PORT(CLK1,RST,EN:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCNT9;
ARCHITECTUREbehaveOFCNT9IS
BEGIN
PROCESS(CLK1,RST,EN)
VARIABLECQI:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IFRST='1'THENCQI:
=(OTHERS=>'0');
ELSIFCLK1'EVENTANDCLK1='1'THEN
IFEN='1'THEN
IFCQI<8THENCQI:
=CQI+1;
ELSECQI:
=(OTHERS=>'0');
ENDIF;
ENDIF;
ENDIF;
CQ<=CQI;
ENDPROCESS;
ENDbehave;
(3)译码器的程序编写。
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDECL7SIS
PORT(D:
INSTD_LOGIC_VECTOR(3DOWNTO0);
A:
INSTD_LOGIC_VECTOR(2DOWNTO0);
B:
OUTSTD_LOGIC_VECTOR(2DOWNTO0);
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDDECL7S;
ARCHITECTUREoneOFDECL7SIS
BEGIN
B<=A;
PROCESS(D)
BEGIN
CASEDIS
WHEN"0000"=>LED7S<="0111111";
WHEN"0001"=>LED7S<="0000110";
WHEN"0010"=>LED7S<="1011011";
WHEN"0011"=>LED7S<="1001111";
WHEN"0100"=>LED7S<="1100110";
WHEN"0101"=>LED7S<="1101101";
WHEN"0110"=>LED7S<="1111101";
WHEN"0111"=>LED7S<="0000111";
WHEN"1000"=>LED7S<="1111111";
WHEN"1001"=>LED7S<="1101111";
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
END;
将上述三个程序主合成一个通过将32KHz分成1KHz,在译码器上显示数字0到9.的主合程序,,,需进行元件例化。
。
例化程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYKONIS
PORT(ain,bin,cin:
INSTD_LOGIC;
AN:
INSTD_LOGIC_VECTOR(2DOWNTO0);
BN:
OUTSTD_LOGIC_VECTOR(2DOWNTO0);
YOUT:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDKON;
ARCHITECTUREoneOFKONIS
COMPONENTfenpin
PORT(CLK:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTCNT9
PORT(CLK1,RST,EN:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCOMPONENT;
COMPONENTDECL7S
PORT(D:
INSTD_LOGIC_VECTOR(3DOWNTO0);
A:
INSTD_LOGIC_VECTOR(2DOWNTO0);
B:
OUTSTD_LOGIC_VECTOR(2DOWNTO0);
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDCOMPONENT;
SIGNALe:
STD_LOGIC;
SIGNALF:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
u1:
fenpinPORTMAP(CLK=>ain,Q=>e);
u2:
CNT9PORTMAP(CLK1=>e,RST=>bin,EN=>cin,CQ=>F);
u3:
DECL7SPORTMAP(D=>F,A=>AN,LED7S=>YOUT);
ENDARCHITECTUREone;
具体操作过程如下:
File>new…>VHDL
点击OK即可,
再将分频程序粘贴即可,,
再运行在新建工程选中NewProjectwizard..
如下图所示
开始新建工程如下图所示
注意工程名一定要与实体名一致,如fenpin就与实体名一致。
单击Next即可
弹出如下图再单击Next即可。
按下图选好相应的芯片再单击Next
再单击下图Next
再单击Next
第二个程序以及第三个程序都只需保存编译即可,不许再将工程,,若弹出是否另建一工程,选择“否”即可。
再就是最后的元件例化。
按第一步过程建好工程(工程名与实体名一致),再将例化程序粘贴到编辑框再建立顶成实体。
单击下图所示的SetasTop-levelEntity即可
最后进行引脚绑定。
如下图所示
再下载即可看到现象。
还可通过打包的方法得到,不需例化,只需先封装,在连线。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 中用 VHDL 语言 编程 实验 doc