EDA课程设计报告书简易cpu设计说明书
eda课程设计说明书
说明书课程设计说明书课程设计名称:EDA技术课程设计题目:洗衣机控制电路学生姓名:沈启伟专业:信息工程学号: 312011********* 指导教师:日期:2014年6月 12日成绩说明书摘要:从课程设计要求来看,要求实现洗衣机的正转,反转,待机,当显示时间前5S时,正转60S,待机5s,反转60s,如此一来周期就是130秒,并用三个LED灯和7段显示器分别表示其工作状态和显示相应工作状态下的时间。
本设计采用EDA技术,通过FPGA芯片实现了洗衣机控制电路的设计,本文采用Verilog 硬件描述语言洗衣机控制电路,完成对电路的功能仿真。
洗衣机控制电路包括控制电路,控制对象,状态显示电路,计时及报警电路。
控制器是系统的核心部件。
它是一闭环系统,内部结构有5s和60s信号产生器、状态计数器、数据选择器和状态译码器,它能自动发出顺序循环控制信号(S、R、L),并同时完成在该状态下计时功能。
关键词:EDA技术、FPGA芯片、硬件描述语言、控制器、7段显示器Abstract:From the curriculum design requirement to see, demanding the washing machines are turning, reverse, standby, when shows the time before 5 S, are turning 60 S, standby 5 S, 60 S, reverse,So cycle is 130 seconds, and three LED lamp and seven segment display said its working status and respectively corresponding work condition of that time. Design by EDA technology, through the FPGA chip realized the washing machine control circuit design, the paper Verilog hardware description language washing machine control circuit and the completion of the function of the circuit simulation. The washing machine control circuit including control circuit, control object, state display circuit, and the alarm clock circuit. The controller is the core of the system components. It is a closed loop system, internal structure has 5 s and 60 s signal generator, state counters, multiplexer and state decoder, It can automatically sends out order cycle control signal (S/R, L), and finish at the same time in the state timing function.Keywords:Electronic Design Automatic technology,Flied Programmable,Gate Array,Hardware DescriptionLanguage, State Machine, Ring Counter;Controller, 7 section displays说明书目录前言 (2)1.EDA技术发展及介绍 (3)1.1EDA技术的介绍 (3)1.2 EDA技术的发展 (3)1.3 EDA技术的发展趋势 (4)2、总体方案设计 (5)2.1设计内容 (5)2.2设计方案比较 (5)2.3方案选择 (6).2.4 设计框图 (7)3、特殊器件的介绍 (8)3.1 CPLD器件介绍 (8)3.2 FPGA器件介绍 (8).4. 单元模块及软件设计 (10)4.1 电路原理图 (10)4.2有源晶振电路 (10)4.3供电电路 (11)4.4 PS配置电路 (12)4.5 软件设计 (12)5.仿真 (17)5.1仿真 (17)5.2 生成的原理框图: (17)6.系统调试及结果分析 (18)7. 结论及心得体会 (19)7.1设计小结 (19)7.2 设计收获 (19)7.3 致谢 (19)8. 参考文献 (20)说明书前言随着电子技术的发展,人们的生活水平和质量不断提高,生活设备的智能化程度也越来越高,这些都离不开电子产品的进步。
EDA课程设计报告材料
实用成绩:EDA课程设计报告课程 EDA课程设计专业学号姓名指导教师日期 2012.06.21机械与电子信息学部一、设计任务与要求1.任务:制作并调试EDA学习板2.了解并能识别学习板上的各种元器件,会读元器件标示;3.会看电路原理图;4.制作EDA学习板;5.编写VHDL程序进行跑马灯控制6.编写VHDL程序进行步进电机的转速控制7.学会使用QuartusⅡ软件下载调试程序;8.用调试程序将学习板调试成功。
9.二.课程设计目的通过编写VHDL程序,结合硬件电路设计,实现跑马灯和步进电机的转速控制。
经过本次课程设计,能够将所学专业理论知识进行综合实际运用,锻炼学生的动手能力以及提高学生的综合专业素质。
三、实验内容1.芯片工作电路,利用晶振提供控制信号。
2.10引脚下载口与芯片相关引脚相连完成下载电路。
3.利用16个开关做成键盘,实现输入号对已编程的芯片的控制并通过数码管显示0--F。
4.用2片74HC573N具有锁存功能芯片与8个数码管相连,通过编程实现位选和段选实现输出信号的显示功能。
5.使用74HC573N锁存功能结合ULN2003AG芯片8非门芯片和74HC04N6非门芯片与4个2N5551三极管实现对步进电机的控制,和控制步进电机6.信号结合LED输出显示的功能。
7.利用1片74HC573N芯片与8个共阴极LED实现跑马灯功能。
四.课程设计器材清单六.程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cc isport(clk: in std_logic;bj:out std_logic_vector(3 downto 0);start:in std_logic;kbcol:in std_logic_vector(3 downto 0);kbrow:out std_logic_vector(3 downto 0);seg1_out:out std_logic_vector(3 downto 0);seg2_out:out std_logic_vector(3 downto 0);qq_out:out std_logic_vector (7 downto 0);qq1_out:buffer std_logic_vector(7 downto 0);sk:in bit);end;architecture one of cc istype btype is(s0,s1,s2,s3);signal current_state,next_state:btype;signal count: std_logic_vector(1 downto 0);signal sta: std_logic_vector(1 downto 0);signal seg1: std_logic_vector(3 downto 0);signal seg2: std_logic_vector(3 downto 0);signal fn: std_logic;signal ks:std_logic_vector(1 downto 0);signal qq: std_logic_vector (7 downto 0);signal qq1:std_logic_vector (7 downto 0);signal sp1,sp2:std_logic_vector(3 downto 0);beginpqq:process (clk)beginif clk'event and clk='1' thenqq<=qq+1;end if;end process;qq_out<=qq;reg:process (qq(7))beginif qq(7)'event and qq(7)='1'thencurrent_state <=next_state;end if;end process reg;com:process (current_state)begincase current_state iswhen s0=> bj<="0011";next_state <=s1; when s1=> bj<="1001";next_state <=s2; when s2=> bj<="1100";next_state <=s3; when s3=> bj<="0110";next_state <=s0; when others=>next_state <=s0;end case;end process com;process(clk)beginif clk'event and clk='1'then count<=count+1; end if;end process;process(clk)beginif clk'event and clk='1'thencase count iswhen "00"=>kbrow<="0001";sta<="00";when "01"=>kbrow<="0010";sta<="01";when "10"=>kbrow<="0100";sta<="10";when "11"=>kbrow<="1000";sta<="11";when others=>kbrow<="1111";end case;end if;end process;process(clk,start)beginif start='0'then seg1<="0000";seg2<="0000"; elsif clk'event and clk='1'thencase sta iswhen "00"=>case kbcol iswhen "0001"=>seg1<="0000";seg2<="0001"; when "0010"=>seg1<="0000";seg2<="0010";when "0100"=>seg1<="0000";seg2<="0011";when "1000"=>seg1<="0000";seg2<="0100";when others=>seg1<="1111";seg2<="1111";end case;when "01"=>case kbcol iswhen "0001"=>seg1<="0000";seg2<="0101";when "0010"=>seg1<="0000";seg2<="0110";when "0100"=>seg1<="0000";seg2<="0111";when "1000"=>seg1<="0000";seg2<="1000";when others=>seg1<="1111";seg2<="1111";end case;when "10"=>case kbcol iswhen "0001"=>seg1<="0000";seg2<="1001";when "0010"=>seg1<="0001";seg2<="0000";when "0100"=>seg1<="0001";seg2<="0001";when "1000"=>seg1<="0001";seg2<="0010";when others=>seg1<="1111";seg2<="1111";end case;when "11"=>case kbcol iswhen "0001"=>seg1<="0001";seg2<="0011";when "0010"=>seg1<="0001";seg2<="0100";when "0100"=>seg1<="0001";seg2<="0101";when "1000"=>seg1<="0001";seg2<="0110";when others=>seg1<="1111";seg2<="1111";end case;when others=>seg1<="1111";seg2<="1111";end case;end if;end process;fn<=not(seg1(0)and seg2(0)and seg2(1)and seg2(2)and seg2(3)); process(fn)beginif fn'event and fn='1'thenseg1_out<=seg1;seg2_out<=seg2;end if;end process;process (qq(7))variable c:integer range 7 downto 0; beginif qq(7)'event and qq(7)='1'thenc:=c+1;if c=7 thenqq1<=qq1+1;end if;end if;end process;process (fn,qq1)beginif fn'event and fn='1' thencase seg1 iswhen "0000"=>case seg2 iswhen "0001"=>qq1_out<="00011001"; when "0010"=>qq1_out<="00110010"; when "0011"=>qq1_out<="01001011"; when "0100"=>qq1_out<="01100100"; when "0101"=>qq1_out<="01111111"; when "0110"=>qq1_out<="10010110"; when "0111"=>qq1_out<="10101111"; when "1000"=>qq1_out<="11001000"; when "1001"=>qq1_out<="11100001"; when others=>qq1_out<=qq1;end case;when "0001"=>case seg2 iswhen "0000"=>qq1_out<="11110000"; when "0001"=>qq1_out<="11111111"; when "0010"=>qq1_out<="00000000"; --when "0011"=>qq1_out<=qq1;when others=>qq1_out<=qq1;end case;when others=>qq1_out<=qq1;end case;end if;end process;process(sk,start,sp1,sp2)beginif start='0' then sp1<="0000";sp2<="0000";elsif sk'event and sk='1' thenif sp2<"1001" then sp2<=sp2+1;else sp2<="0000";end if;end if;if sp2="1001" then sp1<=sp1+1;end if;end process;end;七.元件调试1、否短路用万用表检查P2两端是短路。
EDA-课程设计报告书
EDA-课程设计报告书《电子设计自动化EDA》课程设计报告书学号:08057102 班级:自动化081 姓名:陈婷指导教师:刘伟目录一、设计思想(一)、设计要求1、具有以24小时制时、分、秒记时、显示功能。
2、具有整点报时功能,整点报时的同时LED花样显示。
3、具有消零,调节小时,分钟功能。
4、设计精度要求为1s。
(二)、系统功能描述1.、系统输入:调时、调分,清零信号,分别用按键开关SETHOUR、SETMIN、RESET控制;计数时钟信号CLK采用2HZ时钟源,扫描时钟信号CLKDSP采用32HZ时钟源或更高;2、系统输出:8位八段共阴极数码管显示输出;LED花样显示输出;3、系统功能详细描述:计时:正常工作状态下,每日按24小时计时制,蜂鸣器无声,逢整点报时。
显示:要求采用扫描显示方式驱动8位8段数码管显示。
整点报时:蜂鸣器在“51”、“53”、“55”、“57”、“59”秒发音,结束时为整点;校时:在计时状态下,按下按键SETMIN设定分钟,按下按键SETHOUR设定小时。
(三)设计思路1、分别写出六进制、十进制、二十四进制、清零、设置时分、LED译码部分,在主体部分用元件例化语句计时,清零设置时分、LED译码,再加上扫描模块2、将六进制、十进制、二十四进制、清零、设置时分、LED译码、扫描模块分模块写在一个主中(四)系统电路结构框图二、设计步骤(一)各种进制的计时及时钟控制模块程序1、6进制library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter6 isport( clk,reset,set: in std_logic;ain:in std_logic_vector(3 downto 0);aout: out std_logic_vector(3 downto 0);co: out std_logic);end counter6;architecture art2 of counter6 issignal count:std_logic_vector(3 downto 0);beginprocess(clk)beginif (clk'event and clk='1')thenif(reset='0')then count<="0000";elsif(set='1')then count<=ain;elsif (count="0101")thencount<="0000";co<='1';else count<=count+1;co<='0';end if;end if;end process;aout<=count;end art2;2、10进制library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter10 isport(clk,reset,set: in std_logic;ain:std_logic_vector(3 downto 0);aout:out std_logic_vector(3 downto 0); co:out std_logic);end counter10;architecture art1 of counter10 issignal count:std_logic_vector(3 downto 0);beginprocess(clk)beginif(clk'event and clk='1') thenif(reset='0')then count<="0000";elsif(set='1')then count<=ain;elsif(count="1001") thencount<="0000";co<='1';else count<=count+1;co<='0';end if;end if;end process;aout<=count;end art1;3、24进制ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter24 isport( clk,reset,set: in std_logic;ainh:in std_logic_vector(3 downto 0);ainl:in std_logic_vector(3 downto 0);aout: out std_logic_vector(7 downto 0)); end counter24;architecture art3 of counter24 issignal count:std_logic_vector(7 downto 0); beginprocess(clk)beginif(clk'event and clk='1') thenif(reset='0')then count<="00000000";elsif(set='1')then count(7 downto 4)<=ainh;count(3 downto 0)<=ainl;elsif(count(7 downto 4)<"0011" ) thenif(count(7 downto 4)="0010" and count(3 downto 0)="0011") thencount<="00000000";elsif(count(3 downto 0)="1001") thencount(3 downto 0)<="0000";count(7 downto 4)<=count(7 downto 4)+1;else count(3 downto 0)<=count(3 downto 0)+1;end if;end if;end if;--end if;end process;aout<=count;end art3;(二)系统整体程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock isport(clk,b1,clks: in std_logic;reset: in std_logic;setmin,sethour: in std_logic;minutell,minutehh,hourll,hourhh,b2:instd_logic_vector(3 downto 0);secondl,secondh:out std_logic_vector(3 downto 0);--second0,second2:out std_logic_vector(6 downto 0);minutel,minuteh:out std_logic_vector(3 downto 0);--minute0,minute2:out std_logic_vector(6 downto 0);hourl,hourh:out std_logic_vector(3 downto 0); --hour0,hour2,dout:out std_logic_vector(6 downto 0);dout:out std_logic_vector(6 downto 0);s:out std_logic_vector(2 downto 0); singing,light: out std_logic);end clock;architecture art of clock iscomponent counter10 isport(clk,reset,set: in std_logic;ain:in std_logic_vector(3 downto 0);aout:out std_logic_vector(3 downto 0);co:out std_logic);end component;component counter6 isport(clk,reset,set: in std_logic;ain:in std_logic_vector(3 downto 0);aout:out std_logic_vector(3 downto 0);co:out std_logic);end component;component counter24 isport(clk,reset,set: in std_logic;ainh,ainl:std_logic_vector(3 downto 0);aout:out std_logic_vector(7 downto 0));end component;component led7 isport(ain: in std_logic_vector(3 downto 0);aout:out std_logic_vector(6 downto 0));end component;signal cs0,cs1,cm0,cm1:std_logic;signals0,s1,m0,m1,h0,h1,cout:std_logic_vector(3 downto 0);signal h:std_logic_vector(7 downto 0);signal count:std_logic_vector(2 downto 0);beginh0<=h(3 downto 0);h1<=h(7 downto 4);u1:counter10 port map(clk=>clk,reset=>reset,set=>b1,ain=>b2,aou t=>s0,co=>cs0);u2:counter6 port map(clk=>cs0,reset=>reset,set=>b1,ain=>b2,aout=>s1,co=>cs1);u3:counter10portmap(clk=>cs1,reset=>reset,set=>setmin,ain=>mi nutell,aout=>m0,co=>cm0);u4:counter6portmap(clk=>cm0,reset=>reset,set=>setmin,ain=> minutehh,aout=>m1,co=>cm1);u5:counter24portmap(clk=>cm1,reset=>reset,set=>sethour,ainl=> hourll,ainh=>hourhh,aout=>h);u6:led7 port map(ain=>cout,aout=>dout);secondl<=s0;secondh<=s1;minutel<=m0;minute h<=m1;hourl<=h0;hourh<=h1;process(m1,m0,s1,s0)beginif(m1="0101" and m0="1001" and s1="0101" and s0="1001") thensinging<='1';light<='1';else singing<='0';light<='0';end if;end process;process(clks)beginif(clks'event and clks='1') thenif (count="101") thencount<="000";else count<=count+1;end if;s<=count;CASE count ISwhen"000"=> cout<=s0;when"001"=> cout<=s1;when"010"=>cout<=m0;s<="010";when"011"=> cout<=m1 ;when"100"=> cout<=h0;when"101"=> cout<=h1;when others=> cout<="0000";end case;end if;end process;end art;三、调试过程(一)仿真波形1、6进制程序仿真波形2、10进制程仿真波形3、24进制程序仿真波形4、系统程序仿真波形(二)分析问题1:u6:led7 port map(ain=>secondl,aout=>second0);u7:led7 port map(ain=>secondh,aout=>second1);u8:led7 port map(ain=>minutel,aout=>minute0);u9:led7 port map(ain=>minuteh,aout=>minute1);u10:led7 port map(ain=>hourl,aout=>hour0);u11:led7 port map(ain=>hourh,aout=>hour1);问题分析:元件例化是并行语句,按此段代码LDE并行显示,每一个数码管都需要八个端口,这样就需要八排插口,而试验箱只有一排端口。
eda
课程设计说明书学生姓名:张燕学号:0906220220学院:信息工程学院班级: 通信092题目:指导教师:职称:年月日一 摘 要基于FPGA 的调制和解调数字信号的方法有多种,包括2ASK 、2FSK 、2PSK 等,本文基于FPGA 芯片,采用VHDL 语言,利用层次化、模块化设计方法,提出了一种2FSK 调制解调器的实现方法。
仿真结果表明此设计方案是可行的,系统具有较高的实用性和可靠性。
二 引言随着通信理论和计算机技术的发展,数字信号的调制、解调和识别是高科技的发展趋势。
调制解调效果的好坏直接关系着通信系统的性能。
而数字解调技术的关键在于瞬时幅度,瞬时频率和瞬时相位参数的准确估计。
基带数字信号在远距离传输,特别是在有限带宽的高频信道如无线或光纤信道上传输时,必须对数字信号进行载波调制。
数字信号对载波频率调制称为频移键控即FSK 。
FSK 是用不同频率的载波来传送数字信号,是信息传输中使用较早的一种调制方式。
它的主要特点是:抗干扰能力较强,不受信道参数变化的影响,传输距离远,误码率低,抗噪声与抗衰减的性能较好,实现起来较容易等。
在中低速数据传输中,特别是落信道中传输数据时,有着广泛的应用。
但传统的FSK 调制解调器采用"集成电路+连线"的硬件实现方式进行设计,集成块多、连线复杂且体积较大,特别是相干解调需要提取载波,设备相对比较复杂,成本高。
基于FPGA 的2FSK 调制和解调设计过程采用VHDL 语言实现,设计灵活、修改方便,具有良好的可移植性及产品升级的系统性。
三 系统设计 (一)FSK 信号调制 1、 FSK 信号调制原理频移键控即FSK 主要通过数字基带信号控制载波信号的频率来传递数字信息。
在二进制情况下,"1"对应于载波频率W 1,"0"对应于载波频率W 2,但是二者振幅和初始相位不变,表达式为⎭⎬⎫⎩⎨⎧++=)sin()cos()(2211φφt w A t w A t s式中A 为常数表示码元的包络是矩形脉冲。
EDA课程设计报告
EDA课程设计报告•相关推荐EDA课程设计报告在我们平凡的日常里,报告的使用成为日常生活的常态,报告中涉及到专业性术语要解释清楚。
那么报告应该怎么写才合适呢?以下是小编为大家整理的EDA课程设计报告,希望对大家有所帮助。
EDA课程设计报告1实训任务:一、实训目的和要求:(1)熟练掌握keil c51集成开发环境的使用方法(2)熟悉keil c51集成开发环境调试功能的使用和dp?51pro。
net单片机仿真器、编程器、实验仪三合一综合开发平台的使用。
(3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口。
(4)了解掌握单片机芯片的烧写方法与步骤。
(5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。
(6)掌握利用protel 99 se绘制电路原理图及pcb图。
(7)了解pcb板的制作腐蚀过程。
二、实训器材:pc机(一台)pcb板(一块)520ω电阻(八只)10k电阻(一只)led发光二极管(八只)25v 10μf电容(一只)单片机ic座(一块)at89c51单片机芯片(一块)热转印机(一台)dp?51pro。
net单片机仿真器、编程器、实验仪三合一综合开发平台(一台)三、实训步骤:(2)将流水灯程序编写完整并使用tkstudy ice调试运行。
(4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求。
(6)制板。
首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净。
(7)焊接。
将所给元器件根据原理图一一焊至pcb板相应位置。
(8)调试。
先把at89c51芯片插入ic座,再将+5v电源加到制作好的功能板电源接口上,观察功能演示的整个过程(看能否实现任务功能)。
eda课程设计cpu
eda课程设计cpu一、教学目标本课程旨在让学生了解和掌握EDA课程设计CPU的相关知识。
通过本课程的学习,学生将能够:1.知识目标:•理解CPU的基本构成和原理;•掌握EDA工具的使用方法;•了解CPU设计的流程和步骤。
2.技能目标:•能够使用EDA工具进行CPU设计;•能够根据需求分析,设计出符合要求的CPU;•能够对设计的CPU进行仿真和测试。
3.情感态度价值观目标:•培养学生对计算机科学的兴趣和热情;•培养学生解决问题的能力和创新精神;•培养学生团队协作和沟通的能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.CPU的基本构成和原理;2.EDA工具的使用方法;3.CPU设计的流程和步骤;4.CPU设计的实例讲解和分析。
具体的教学内容安排如下:第一周:CPU的基本构成和原理;第二周:EDA工具的使用方法;第三周:CPU设计的流程和步骤;第四周:CPU设计的实例讲解和分析。
三、教学方法为了更好地实现教学目标,我们将采用以下教学方法:1.讲授法:用于讲解CPU的基本构成和原理,以及EDA工具的使用方法;2.案例分析法:通过分析具体的CPU设计实例,使学生更好地理解和掌握设计流程和步骤;3.实验法:让学生亲自动手进行CPU设计,提高学生的实践能力。
四、教学资源为了支持教学内容的实施,我们将准备以下教学资源:1.教材:CPU设计与EDA工具的使用相关教材;2.多媒体资料:包括PPT、视频教程等;3.实验设备:计算机、EDA工具软件等。
通过以上教学资源的使用,我们将尽力提高学生的学习体验,帮助学生更好地掌握EDA课程设计CPU的知识。
五、教学评估为了全面、客观地评估学生在EDA课程设计CPU方面的学习成果,我们将采取以下评估方式:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现,评估其对知识的掌握和运用能力;2.作业:布置与课程内容相关的设计项目和练习题,评估学生的理解和应用能力;3.考试:设置期末考试,涵盖理论知识及实践操作,评估学生对CPU设计与EDA工具使用的综合能力。
EDA创新性实验项目——16位CPU设计
EDA创新性实验项目——16位CPU设计一、项目背景随着计算机科学和技术的不断发展,人们对计算机处理速度和性能的需求也在不断增加。
在这种背景下,为了满足人们对计算速度和性能的需求,研究者们开始将目光投向了新型的CPU设计。
传统的CPU设计多为32位或64位,但这种设计可能会带来一些不必要的复杂性和成本。
因此,设计一种16位CPU成为了当前研究的热点之一二、项目目标本实验项目旨在设计一款16位CPU,以满足轻量级计算需求,并保证其性能和效率。
通过设计一款16位CPU,可以降低处理器的成本和复杂度,提高计算性能,并且更好地满足轻量级计算需求。
三、项目内容1.CPU指令设计:设计新的16位CPU指令集,包括运算指令、数据传输指令、分支跳转指令等,以实现更加高效的计算功能。
2.CPU架构设计:设计16位CPU的整体架构,包括寄存器文件、数据通路、控制单元等,确保CPU的稳定性和高效性。
3.性能优化:对设计的CPU进行性能优化,提高其计算速度和响应速度,确保其在轻量级计算中的高效性。
4.性能评估:通过仿真和实验对设计的16位CPU进行性能评估,检验其计算速度和稳定性,以保证其满足设计需求。
四、项目实施步骤1.设计CPU指令集:根据实际需求设计新的16位CPU指令集,包括指令的格式、操作码和功能,保证其具有高效的计算能力。
2.设计CPU架构:设计16位CPU的整体架构,包括寄存器文件、数据通路和控制单元,确保其能够稳定运行和高效计算。
3.性能优化:对设计的CPU进行性能优化,优化数据通路和控制单元的设计,提高CPU的计算速度和响应速度。
4.实验仿真:通过基于EDA工具进行CPU的设计仿真,检验设计的CPU在不同场景下的计算性能和稳定性。
5.性能评估:对设计的CPU进行性能评估,比较其与传统32位CPU 的性能差异,确保16位CPU在轻量级计算中的优越性。
五、项目成果通过本实验项目的实施,设计一款16位CPU并进行性能评估1.设计一款高效、稳定的16位CPU,满足轻量级计算需求。
EDA课程设计说明书
目录1 前言 (1)2 总体方案设计 (4)2.1 方案比较 (4)2.1.1 方案一 (4)2.1.2 方案二 (5)2.1.3 方案三 (6)2.2 方案论证 (7)2.3 方案选择 (7)3 单元模块的设计 (7)3.1 抢答器鉴别模块 (8)3.2 抢答计时模块 (9)3.3 报警模块 (10)4 软件设计 (12)4.1软件设计原理及设计所用工具 (12)4.2 设计思路 (13)4.3 软件设计流程图 (14)5 系统调试 (15)5.1 硬件调试 (15)5.2 软件调试 (16)6 系统功能、指标参数 (16)6.1 实现功能 (16)6.2 指标参数 (17)6.3 指标参数分析 (17)7设计总结 (17)参考文献 (19)附录 (20)相关设计图 (20)软件程序 (21)1 前言随着各种智益电视节目的不断发展,越来越多的竞赛抢答器派上了用场。
抢答器不仅体现了选手之间的公平抢答,而且能节目现成紧张而活跃的气氛,增强节目的趣味性,让观众看得更有乐趣从而达到提高收视率的效果。
可见,抢答器在现实生活中确实很实用,而且运用前景非常广泛。
抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路。
竞赛者可以分成若干组,抢答时各组对主持人提出的问题在最短时间内做出判断,并按下抢答按键回答问题。
当第一个人按下按键后,则在显示器上显示该组的号码,同时将其他按键封锁,使其不起作用。
若在抢答时间内无人抢答,则报警信号发出警报。
回答完问题后,由支持人将其按按键恢复,重新开始下一轮抢答。
EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术作为现代电子设计最新技术的结晶,其广阔的应用前景和深远的影响已经毋庸置疑它在信息工程类专业中的基础地位和核心作用也逐渐被人们所认识,它以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
(完整word版)EDA课设报告
目录课程设计任务书 (1)1.课程设计任务 (2)1.1设计要求 (2)1.2任务要求 (3)2.方案设计、原理分析 (3)3.密码译码电路设计与仿真 (6)4.报警电路设计与仿真 (8)5.顶层设计、总体调试及结果 (13)6.体会 (16)课程设计任务书1.1设计要求1)输入按键开关设计为7个,密码位数要14位。
14位数字密码分成高7位(DH6….D H0)和低7位(DL6….D L0)两次输入,用数字逻辑按键开关预置,1)开锁输出信号out为1表示开锁,否则不开锁。
2)输出报警信号均为1有效,分为声报警Sound thealarm (扬声器)和light alarm(发光管),3) 4.14位数字密码分时操作,先预置高7位,然后再置入低7位,(顶层电路可参考图1)。
4)要求电路工作可靠,保密性强,开锁出错立即报警,(用声光两种形式同时报警)。
5)利用QuartusⅡ软件,混合设计方法进行设计、编译、并在FPGA芯片上实现。
6)7.14位密码自己设定。
比如:“10010010011100”。
本次设计采用本人学号后三位分别用BCD码+两位班号,其中一班是01,二班是10,三班是11四班是00作为设计密码。
1.2任务要求1)设计简易14位数字密码模块ic9a模块,框图见图2,模块ic9ad的设计采用VHDL实现。
2)设计一个报警信号电路(输入频率:100khz,输出频率1HZ,占空比为0.5方波)连接到CP端为报警,设计方法不限。
3)在ic9a模块基础上设计14位数字密码锁的顶层电路。
4)提高部分:(1)增加修改密码功能。
(2)将14位密码转换成BCD码在数码管上显示。
2.方案设计、原理分析清零置高七位将高七位锁存译码锁存信号是否为1输入低七位开锁YN密码是否正确开锁指示灯亮声音报警 灯报警YN图1 原理图 图2 原理框图本次设计是设计14位密码锁,但是如果设计14个输入端口的,试验箱上的输入端口会出现不够用的情况。
EDA课程设计说明书正文
目录1 前言(绪论)······················错误!未定义书签。
2 总体方案设计······················错误!未定义书签。
2.1编码总量的确定···················错误!未定义书签。
2.2编码制式的选择···················错误!未定义书签。
2.3误码输入的保护措施·················错误!未定义书签。
3 电子密码锁的设计与仿真·················错误!未定义书签。
EDA技术课程设计 (2)
EDA技术课程设计一、课程设计概述EDA(Electronic Design Automation)技术是电子设计自动化的缩写,它是通过计算机来自动执行芯片设计、编译、仿真、分析等功能的过程,可以有效提高电路设计效率和准确度。
本次课程设计旨在通过学习EDA技术,提高学生对于电路设计的理解和实践能力,加深对EDA技术的应用和实践过程的认识,同时培养学生实验设计和数据分析能力。
二、课程设计内容1.EDA基础知识学习本课程设计的第一部分是EDA技术基础知识的学习。
首先,我们将学习如何使用EDA工具进行电路设计和编辑。
在此过程中,我们将了解EDA工具的基本原理和操作方法,并通过实验练习掌握其使用技巧。
其次,我们将研究EDA工具的仿真功能和分析功能。
学生将了解如何使用EDA 工具对设计的电路进行仿真和测试,以及如何通过EDA工具对仿真结果进行数据分析和处理。
通过这一部分的学习,学生将获得灵活运用EDA工具进行电路设计和分析的能力。
2.分组实验设计通过本课程设计,学生将被分为若干个小组,并被赋予一项电路设计任务。
学生需要在给定的时间内,通过自己的机器学习和数据分析能力,设计出一套满足规定要求的电路,并使用EDA工具进行仿真和测试。
在实验设计过程中,学生将需要运用自己的电路设计和分析能力,对电路的结构和特性进行综合性分析。
在实验设计完成后,学生需提交一份实验报告,并进行对设计过程和实验结果进行详细的数据分析和总结。
3. 结业项目设计在本课程设计的结业项目中,学生将被分为若干组,并需要完成一个完整的EDA项目设计。
在此过程中,学生将继续运用自己的电路设计和处理能力,并拓展自己的数据分析和应用能力。
在结业项目设计完成后,学生需要提交一份详细的结业报告,并进行对设计过程和实验结果进行详细的数据分析和总结。
三、课程设计评估方式本课程设计采用综合评估方式。
其中,将根据学生在课程设计中的实验设计、EDA工具使用、数据分析和结业项目设计等方面的表现进行评估。
EDA与VHDL 实验报告--16位cpu 设计
[EDA与VHDL 实验报告][16位CPU设计]0 / 1916位cpu 设计一、顶层系统设计1.1 组成结构CPU的结构如图所示。
这是一个采用单总线系统架构的复杂指令系统结构的16 位CPU 。
处理器包含了各种基本器件模块。
他们是8个16位的寄存器reg0~ reg7、一个运算器ALU、一个移位寄存器Shifter、一个程序计数器PortCnt、一个指令寄存器InstrReg、一个比较器Comp、一个地址寄存器Addreg、和一个控制单元Control。
这些模块公共用一组16 位的三台数据总线。
系统采用自顶向下的方法进行设计。
顶层设计由微处理器和存储器通过一组双向数据总线连接,它们由一组地址总线和一些控制总线组成。
处理器从外存储器中读取指令,并通过执行这些指令来运行程序。
这些指令存储在指令寄存器中,并由控制单元译码。
控制单元使得相应的信号互相作用,并使处理单元执行这些指令。
1.2. 指令系统设计在设计处理器时首先要确定Cpu 具有哪些功能,并针对这些功能采用哪些指令,然后确定指令的格式。
为了使设计的CPU 具有基本的运算功能,指令将设计成以下形式,可以分为如下几类.●装载指令:指令从其他寄存器或存储器装载数据或是立刻赋值。
●存储指令:指令存储寄存器的值写到存储器●分支指令:指令使处理器转到其它地址,一些分支指令为条件转移,另外一些为无条件转移●移位指令:这些指令用移位寄存器单元执行移位操作,实现数据传递1.2.1 指令格式所有的指令都包含五位操作码。
单字节指令在低6位指令中包含两个3 位寄存器,一个是源操作数寄存器,另一个是目的操作数寄存器。
双字节指令中,第一个字节中包含目标寄存器的地址,第二个字节中包含了指令地址或者操作数。
指令格式如下:(1)单字指令(2)双字指令第一个字中包含目标寄存器的地址,第二个字中包含了指令地址或者操作数。
1.2.2 指令操作码1.3. 顶层结构的VHDL 设计CPU 原件的VHDL 描述CPU_LIB.VHDL 用来说明连接各个原件之间的信号类型。
eda课程设计cpu设计
eda 课程设计cpu 设计一、教学目标本课程的教学目标是让学生掌握CPU设计的基本原理和方法,了解计算机硬件的基本组成和工作原理,提高学生的科学素养和工程实践能力。
具体来说,知识目标包括:掌握CPU的基本组成和工作原理;了解计算机硬件的层次结构和接口技术;熟悉汇编语言和C语言在硬件描述中的应用。
技能目标包括:能够使用EDA工具进行CPU设计;能够编写简单的汇编语言和C语言程序。
情感态度价值观目标包括:培养学生的科学精神、创新意识和团队合作能力。
二、教学内容本课程的教学内容主要包括CPU设计的基本原理、EDA工具的使用、汇编语言和C语言编程、计算机硬件的层次结构等。
具体安排如下:1.CPU设计的基本原理:介绍CPU的组成、工作原理和性能评价指标,包括数据路径、控制单元、寄存器组、ALU等。
2.EDA工具的使用:介绍常见的EDA工具,如Verilog、VHDL等,以及如何使用这些工具进行CPU设计。
3.汇编语言和C语言编程:介绍汇编语言和C语言的基本语法,以及如何使用这两种语言编写硬件描述程序。
4.计算机硬件的层次结构:介绍计算机硬件的层次结构,包括CPU、内存、外设等,以及它们之间的接口技术。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
在讲授基本原理和概念时,将结合具体的案例进行讲解,以加深学生对知识的理解。
在实践环节,将学生进行小组讨论和实验,培养学生的动手能力和团队协作精神。
同时,将定期进行课堂提问和作业点评,以了解学生的学习情况,及时调整教学方法和策略。
四、教学资源为了支持教学内容的传授和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的教材,如《数字逻辑与计算机设计》等,为学生提供系统的理论知识。
2.参考书:提供相关的参考书籍,如《计算机组成原理》等,供学生深入学习。
3.多媒体资料:制作课件、教学视频等多媒体资料,丰富教学手段,提高学生的学习兴趣。
EDA课程设计实验报告
《EDA课程设计》报告学号:姓名:班级:指导教师:2013年6 月24日- 2013年7 月5日目录1.引言 ............................................................................................................... 错误!未定义书签。
2.原理图的设计................................................................................................ 错误!未定义书签。
文件的新建............................................................................................... 错误!未定义书签。
原理图文件XX .Sch的建立 ..................................................................... 错误!未定义书签。
元件库的导入........................................................................................... 错误!未定义书签。
原理图中各元件的布局和连线 (3)3.原理图新元件的设计 (4)元件库XX .Lib文件的建立 (4)原理图元件的画法................................................................................... 错误!未定义书签。
注意事项................................................................................................... 错误!未定义书签。
简单计算器eda设计最终打印版
目录第一章设计原理 (1)1.1 课程设计依据 (1)1.2 课程设计内容及原理 (1)1.3 课程设计要求 (1)第二章设计流程 (2)2.1设计流程图 (2)2.2 LED灯接线部分显示 (3)第三章模块连接 (4)3.1 四选一多路器 (4)3.1.1多路器程序设计 (4)3.1.2四选一多路器仿真图 (5)3.1.3四选一多路器仿真波形分析 (5)3.2 7段数码管显示 (5)3.2.1数码管程序设计 (5)3.2.2数码管仿真图 (6)3.2.2数码管仿真图分析 (6)3.3 循环扫描模块 (7)3.3.1循环扫描程序 (7)3.3.2循环扫描仿真图 (8)3.3.3 循环扫描模块分析 (8)3.4 简易计算器总体程序设计 (8)3.4.1简单计算器程序设计 (8)3.4.2简单计算器总体仿真图 (11)3.4.3简单计算器仿真图设计分析 (11)第四章设计体会 (12)参考文献 (13)第一章设计原理1.1 课程设计依据在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,利用硬件描述语言Verilog HDL、EDA软件Quartus II和硬件平台Cyclone/Cyclone II FPGA进行电路系统的设计。
1.2 课程设计内容及原理设计一个简单计算器,采用简单4*4计算器键盘,输入2位十进制数进行+、-、 *、/ 四种运算,输入数据分别用两位数码管显示,输出用四位数码管显示4位10进制数,其中除法的结果显示分为商和余数两部分,要求采用时序逻辑设计实现计算器功能。
为了完成要求的效果显示,我先设计了一个简单的四则运算器,为了使其结果能清楚的看到,所以计算器模块和一个7段数码管模块连接。
实验要求,输入分别用两位数码管显示,输出用四位数码管显示,所以用一个3—8译码器和数码管连接,通过开关控制,形成动态显示。
从左向右,依次是第一位数码管显示a的高四位,第二位数码管显示a的低四位;第三位数码管显示b的高四位,第四位数码管显示b的低四位;第五位数码管到第八位数码管显示输出的结果。
EDA课程设计简易cpu设计
EDA技术课程设计任务书班级:姓名:学号:设计题目:简易CPU系统一、设计目的进一步巩固理论知识,培养所学理论知识在实际中的应用能力;掌握EDA设计的一般方法;熟悉一种EDA软件,掌握一般EDA系统的调试方法;利用EDA软件设计一个电子技术综合问题,培养VHDL编程、书写技术报告的能力。
为以后进行工程实际问题的研究打下设计基础。
二、设计任务用VHDL设计一个4位CPU。
要求具备CPU的基本组成:运算器、控制器和寄存器;可以实现两个操作数的五种基本算术运算:加法运算、带进位的加法运算、减法运算、带借位的减法运算和乘法运算;四种逻辑运算:与运算、或运算、非运算、异或运算;以及程序跳转的功能。
对设计电路进行波形仿真、定时分析,下载电路实现CPU的预定功能,同时给出设计电路占用芯片资源的基本情况。
三、设计要求(1)通过对相应文献的收集、分析以及总结,给出相应课题的背景、意义及现状研究分析。
(2)通过课题设计,掌握计算机组成原理的分析方法和设计方法。
(3)学习按要求编写课程设计报告书,能正确阐述设计和实验结果。
(4)学生应抱着严谨认真的态度积极认真查阅相应文献以及实现,给出分析、设计。
四、设计时间安排查找相关资料(1天)、设计并绘制系统原理图(2天)、编写VHDL程序(2天)、调试(2天)、编写设计报告(2天)和答辩(1天)。
五、主要参考文献[1] 江国强编著. EDA技术与实用(第三版). 北京:电子工业出版社,2011.[2] 曹昕燕,周凤臣.EDA技术实验与课程设计.北京:清华大学出版社,2006.5[3] 阎石主编.数字电子技术基础.北京:高等教育出版社,2003.指导教师签字:年月日简易cup系统摘要EDA(electronic design automation)技术是现代电子工程领域的一门新兴的电子设计技术。
它大大缩短了集成电路的设计周期,提高了生产效率。
VHDL(Very High Speed Integrated Circuit(VHSIC) Hardware Description Language)作为IEEE标准所规范的硬件描述语言,目前正在电子系统设计领域获得广泛应用。
简易cpu设计课程设计
简易cpu设计课程设计一、课程目标知识目标:1. 让学生理解CPU的基本结构及其功能,掌握简易CPU的设计原理。
2. 学会运用数字逻辑设计简易CPU,了解指令集、运算器、控制器等关键部件的作用。
3. 了解计算机组成原理,掌握硬件与软件的相互关系。
技能目标:1. 培养学生运用所学知识设计简易CPU的能力,提高创新实践能力。
2. 能够运用数字逻辑分析和解决简易CPU设计中的问题,提高问题解决能力。
3. 学会使用相关设计软件(如Multisim、Protel等)进行简易CPU的电路设计和仿真。
情感态度价值观目标:1. 培养学生热爱科学、追求真理的精神,激发对计算机科学的兴趣。
2. 增强学生的团队协作意识,培养合作精神,提高沟通与交流能力。
3. 引导学生关注我国计算机科技的发展,培养民族自豪感,树立正确的价值观。
课程性质分析:本课程为电子信息工程、计算机科学与技术等相关专业的一门专业课程,旨在培养学生的硬件设计和系统架构能力。
学生特点分析:学生已具备一定的电子技术、数字逻辑和计算机组成原理基础,具有较强的逻辑思维能力和动手实践能力。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。
2. 突出创新实践,鼓励学生自主探究,培养学生的自主学习能力。
3. 注重过程评价,关注学生的学习进步和个体差异,提高教学质量。
二、教学内容1. 教学大纲:- 简易CPU设计概述:介绍CPU发展历程、简易CPU的概念及其应用。
- CPU基本组成:讲解指令集、运算器、控制器、寄存器等组成部分。
- 数字逻辑设计基础:复习逻辑门、组合逻辑、时序逻辑等基础知识。
- 简易CPU设计原理:分析指令执行过程、控制信号产生、数据通路等。
- 硬件描述语言:介绍VHDL/Verilog等硬件描述语言的基本语法和应用。
- 设计与仿真:运用Multisim、Protel等软件进行简易CPU电路设计和仿真。
- 实践项目:分组进行简易CPU设计,完成指定指令集的处理器设计。
eda课设说明书
1 引言1.1 课程介绍EDA是电子设计自动化(Electronic Design Automation)缩写。
在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术是以计算机为工具,根据硬件描述语言VHDL(VHSIC Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
几乎所有适于大学生做的数字逻辑电路实验都可以在计算机上利用EDA (Electronic Design Automatic—电子设计自动化)软件进行设计、仿真,只有极少量外部配件不能在计算机上进行仿真。
因此,在实验前期阶段,即实验预习阶段的主要应用工具是EDA软件,利用EDA软件可以设计、仿真实验课题,进行虚拟实验。
通过虚拟实验使实验者在进入真实实验前就能对预做的实验有相当的了解,甚至可以预测到实验的结果。
这样在实际做实验时,可以把许多设计型实验的难度降低,同时能有更多的时间让实验者动手做实验,研究问题,提高实验效率。
当前数字电路设计已由计算机辅助设计进入到以计算机为主的设计时代1.2 VHDL介绍VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述,基于这种描述,结合相关的软件工具,可以得到所期望的实际电路与系统。
使用VHDL语言描述的电路,可以进行综合和仿真。
然而,值得注意的是,尽管所有VHDL代码都是可仿真的,但并不是所有代码都能综合。
VHDL被广泛使用的基本原因在于它是一种标准语言,是与工具和工艺无关的,从而可以方便地进行移植和重用。
VHDL两个最直接的应用领域是可编程逻辑器件(PLD)和专用集成电路(ASIC),其中可编程逻辑器件包括复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cj_instruct:为1表示本条指令是条“JNC ADR”指令。
lj_instruct:为1表示本条指令是条“JMP ADR”指令。
DRWr:为1表示在t3的下降沿将本条指令的执行结果写入目的寄存器。
Mem_Write:为1表示本条指令有存储器写操作.存储器的地址是源寄存器的内容。
在此次的课程设计中我郑重向老师表示感谢.正是由于老师的推荐和指导.我小组同学才能接触到这个cpu设计课题.也正是老师的指导和提供的辅导材料才使得我们的设计可以正常进行.克服突破了其中遇到的技术和知识难点。这种开放式课程设计的模式不仅给我们提供了更广阔的选择模式.还给我们提供了挑战自我的机会。
3、参考文献
(2)产生存储器读写所需要的存储器地址Mem_ADDR.
(3)产生条件转移指令所需要的转移标志。
执行部分的河西传统上属于运算器.是运算器的核心。
执行部分
六、16位简易cpu设计总体框图
七、实验仿真示例
总结:
1设计成果:
(1)初步实现了简易cpu的各个功能模块。实现了个个模块的连接组合。
(2)通过实践设计更加深入的了解了计算机组成原理的相关知识。真正的做到了通过实践加深知识的掌握和学习。
五、各模块设计及功能介绍
1.寄存器模块
在本程序设计中.通用寄存器组内包含4个16位寄存器。这是一个具有1个写入端口、2个读出端口的通用寄存器组。写入端口将指令执行后得到得目的寄存器的值在t3得下降沿写入目的寄存器中。只有具有些目的寄存器功能的指令执行结束时才写目的寄存器。有些指令.如JMP指令等执行结束后不会改变通用寄存器组的值。通用寄存器组的两个读出端口.一个是目的寄存器读出端口.一个是源寄存器读出端口.从这两个端口读出的内容供执行部分exe_unit和存储器部分memory_unit使用。通用寄存器组内还有两个标志位:z_out和c_out.在t3的下降沿根据指令执行的结果改变或者不改变它们的值。这两个标志位的值送执行部分exe_unit使用。
3.学会利用先进的硬件设计工具软件Quartus II对程序进行仿真和调试。
课程设计环境
QuartusⅡ5.0软件
课程设计任务和要求
编写源程序并对程序进行仿真。
课程设计工作进度计划
序号
起止日期
工作内容
①
08年5月25日—5月28日
翻阅书籍查找相关的程序
②
5月29日—6月5日
编写程序
③
6月6日—6月10日
寄存器模块芯片图
寄存器模块
2.取指令部分
在本程序设计中.取指部分完成4项工作:
⑴产生时钟信号t1、t2和t3.供CPU各部分使用;
⑵在复位信号reset为低时将pc复位为0.在一条指令执行结束之后.根据指令执行的结果在t3的下降沿改变pc的值;
⑶将从存储器读出的指令的第一个字在t2的上升沿送至指令寄存器IR中;
ADR
功能:PC<—ADR
JNC ADR
指令编码:
1001 0000
ADR — @ — 1
功能:如果C=0.则PC<—ADR;如果C=1.则PC<—PC+1;
JNZ ADR
指令编码:
1010 0000
ADR — @ — 1
功能:如果Z=0.则PC<—ADR;如果Z=1.则PC<—PC+1;
MVRD DR.DATA
NOP
指令编码:
1111 0000
0000 0001
功能:PC<—PC+1。
指令系统设计说明:
本设计使用的指令系统基本满功能上的需求.除了PUSH、POP、CALL、和RET等少数指令没有包括外.基本上是齐全的。包括了运算指令、转移指令和储存指令三类.。
编码说明
R15R14R13R12R11R10R9R8
R7R6R5R4R3R2R1R0
IR15为0时运算指令
IR15、IR14为10时为转移指令;
IR15、IR14为11时为储存指令;
算数逻辑指令的IR14~IR12对应运算器ALU的三位运算操作码。
当IR0=1时.本指令中有对DR的写操作。
当IR1=1时.本指令影响标志为C。
当IR2=1时.本指令影响标志为Z。
指令译码部分
4.存储模块
存储模块是cpu与外部存取器的接口部分。向外部的存储器送出16为存储地址总线Mem_addr、16为双向数据总线ob、读写信号wr。当wr为1时.外部存储器作为读存储器信号处理;当wr信号为0时.外部存储器作为写存储器信号处理。
存储模块
5.执行部分
执行部分完成下列任务:
(1)8种逻辑运算:加、加1、减、减1、与、或、非和数据传送.将运算结果存放在result中。根据运算结果产生位标志。
⑷计算pc+1的值pc_inc.为双字指令取第二个指令字做准备
取指令部分
3.指令译码部分
在本程序设计中.指令译码部分的功能是:根据指令寄存器IR的值产生实验CPU所需要的各种控制信号和其它信号.其信号作用如下:
SR:源寄存器号(编址)。
DR:目的寄存器号(编址)。
op_code:控制ALU进行8种运算操作的3位编码。
INC DR
指令编码:
0001 DR SR
0000 0111
功能:DR<— DR +1.影响C和Z标志。PC <— PC+1。
SUB DR.SR
指令编码:
0010 DR SR
0000 0111
功能:DR<— DR - SR.影响C和Z标志。PC <— PC+1。
DEC DR
指令编码:
0011 DR SR
三、指令系统
设计cpu首先要设计指令系统。由于实验cpu采用16位字长.指令系统只有15条指令.所以16位系统比8位简单的多。故本设计采用16位cpu设计方案。
1.指令系统的格式
ADD DR.SR
指令编码:
0000 DR SR
0000 0111
功能:DR<— DR +SR.影响C和Z标志。PC <— PC+1。
3.学会利用先进的硬件设计工具软件Quartus II对程序进行仿真和调试。
二、设计方案:
设计总体试验cpu由5部分组成:取指部分insru_etch、指令译码部分decoder_unit、执行部分exe _unit、存储部分memory_unit和通用寄存器组fegfile。运用vhdl硬件描述语言在硬件设计工具软件Quartus II环境下进行设计编写.然后使用程序包exe_cpu_components将各个部分作为设计实体使用。最后将各部分组合连接为顶层文件exe_cpu。
0000 0111
功能:DR<— DR- 1.影响C和Z标志。PC <— PC+1。
AND DR.SR
指令编码:
0100 DR SR
0000 0011
功能:DR<— DR and SR.影响Z标志。PC <— PC+1。
OR DR.SR
指令编码:
0101 DR SR
0000 0011
功能:DR<— DR and SR.影响Z标志。PC <— PC+1。
NOT DR
指令编码:
0110 DR SR
0000 0011
功能:DR<— not DR.影响Z标志。PC <— PC+1。
MOV DR.SR
指令编码:
0111 DR SR
0000 0001
功能:DR<— SR.不影响C和Z标志。PC <— PC+1。
JMP ADR
指令编码:
1000 0000
0000 0000
调试程序
④
6月11日—6月15日
对程序进行仿真.得出仿真结果
课程设计内容描述:
16位简易CPU的设计
一、设计目的:
1.利用已知的计算机组成原理知识.以及对计算机系统结构的初步学习.设计一个包括指指令系统、运算器、控制器和寄存器组的简易16位cpu。
2.熟练掌握vhdl硬件描述语言.对cpu的各个功能模块进行代码编写.并学会将各个功能部分组织连接成一个完成的cpu体系结构。
(3)通过设计过程.较熟练的掌握了vhdl硬件描述语言.对cpu的各个功能模块进行代码编写.并学会将各个功能部分组织连接成一个完成的cpu体系结构。
2、小结:
此次课程设计我小组同学齐心合力认真完成了自己的设计部分.初步体显了合作的设计方法和思路。大家同时获得了收益.加强了对知识的掌握。但是由于此次设计是《基于开放式cpu设计》教材的.所以有很多地方还欠缺深入理解.并且由于设计指导是基于原教材实验箱进行的所以缺少cpu的存储部分.所以我小组同学决定在下一步设计中自行设计添加相应的ram模块.实现cpu的完善。
课程设计题目
16位简易CPU设计
姓名
学号
班级
班级
专业
指导教师
李骊
课程设计目的
1.利用已知的计算机组成原理知识.以及对计算机系统结构的初步学习.设计一个包括指指令系统、运算器、控制器和寄存器组的简易16位cpu。
2.熟练掌握vhdl硬件描述语言.对cpu的各个功能模块进行代码编写.并学会将各个功能部分组织连接成一个完成的c用技术》人民邮电出版社
《开放式实验cpu设计》清华大学出版社
成绩
评定
项目
权重
成绩
1、设计过程中学习态度等方面
0.1
2、课程设计质量与答辩
0.5
3、设计报告书写规范程度
0.2