欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    东南大学信息学院poc实验报告.doc

    • 资源ID:6520       资源大小:84.50KB        全文页数:16页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    东南大学信息学院poc实验报告.doc

    -puterOrganization andArchitecture COURSEDESIGNA Parallel Output Controller- (POC)Southeast universitySchool of Information Science and Engineering1. Designpurposea. Thepurpose of thisproject isto design and simulate aparallel output controller(POC)which acts an interface between systembus and printer. The ISE 14.7EDAtool isremended and provided for simulation.b. Learnaboutthe using of Bi-directionalData Bus (BDB), anduse a parallel Bi-directional Data Bus to finishthe data transmission betweenCPU and POC.2. IntroductionandTasksPOC is one ofthe most monI/Omodules,namely the paralleloutputcontroller.It plays the roleof an interface between the puter systembus and the peripheralFigure1.SystemstructurediagramAs Fig.1 shows theinnerconnecting of aprinter to the systembus through thePOC. The- munication between POC and the printer iscontrolledby a "handshakeprotocolgiven in Fig.2.Figure2. Thehandshake-timing diagrambetween POCand theprinterThehandshakingprocessisdescribedasfollows:Whentheprinterisreadytoreceiveachar- acter,itholdsRDY=1.ThePOCmustthenholdacharacteratPD(paralleldata)portandproduce apulseattheterminalTR(transferrequest).TheprinterwillchangeRDYto0,takethecharacter. z.-atPDandholdRDYat0untilthecharacterhasbeenprinted(e.g.delay5or10ms),thensetRDY to 1 again when it isready to receive the ne*t character.The buffer register BR is used to temporarily hold a character sent fromthe processor, which char- acter willbe transferred to the printerlater.The status register SRis used for twocontrol functions:SR7servesasareadyflagtoindicatePOCisreadyornottoreceiveanewcharacterfromthe processor.SR0 is used to enable the interruptrequests sent by POC.Ininterruptmode,If SR0=1,thenPOCwillsendaninterruptrequestsignaltoprocessorwhenitis ready to receive a character(i.e., when SR7=1).IfSR0=0, then POC willnot interrupt.The transferofa character to POC via the systembus proceeds asfollows:In interrupt mode, SR0 isalways 1.After sending character to printer, POC sets the SR7 to 1, since SR0=1, the interrupt request signal (IRQ) is set to 0, which indicate an effective interrupt signal to the processor.1、processorsetsthevalueofSR7&setsthe valueofBRWhentheprocessordetectstheeffectiveIRQsignal,theprocessordirectlyselectsBRandwrites acharacterintoBR,(processorwillneverreadthestateofSR7, whichisdifferentwithpollingmode.)ThentheprocessorsetstheSR7to0,whichindicatesthatthenewcharacterhasbeenwrittenintoBR andnot printed yet.2、POCreadsandsetsthevalueofSR7&handshakesoperations withthe printerWhenPOCdetectsthatSR7issetto0,POCthenproceedstostartthehandshakingoperations with theprinter. z.-Aftersendingcharactertoprinter,POCsetstheSR7to1,whichindicatesPOCisreadytoreceive anothercharacterfromtheprocessor.Thetransfercyclecannowrepeat.and aresamewith the polling statePS:DuringthehandshakingoperationsbetweenPOCandprinter,theprocessordoesnottryto access POC until it receivesthe interrupt request signal3. TheoverallconnectionofthesimulatedprinterandPOCe*pressedinthetopmoduleformFigure3.Thetop module formof the project4. DesigndescriptionofthesimulationinputwaveformsThe inputand outputof CPU,POC and printer are shown below:ProcessorjPinsDescriptionInputclkInput the clock for the CPUrunning.modeChoosethemodefor printing.Whenmode=1,select a interrupt mode.IRQReceive the interrupt signal IRQ.When IRQ='1', new datacan be sent.DIN7.0Read data from poc.DOUT7.0Write data into poc.OutputrwShow thedirection of the DOUT7.0 and DIN7.0 When rw='0',read data fromPOC.When 'rw'='1',write datato POC.A0Controlthe address read and write on POC. z.-When A0='0', chooseSR.When A0='1', choose BR.CSCS=1, poc work.data7.0The data send to POC to beprintedPOCPinsDescriptionInputclkInput the clock for the POC running.RWShow thedirection of the DOUT7.0 and DIN7.0 When rw='0',send datato CPU.When'rw'='1',read data fromCPU.A0Input address,When A0='0', chooseBR. When A0='1', choose SR.RDYInput the readysignal fromprinter. When RDY='1', the printer is idle.When RDY='0', the printer is busy.CSInput the mode of the POC.When CS=0,select apolling mode. When CS=1,select a interruptmode.data7.0The data receive fromCPUto be printed.OutputPD7.0Output thedata to printer.IRQOutput theinterrupt signalIRQ to CPU,showingthePOC and printer is ready.TRThe response to print'RDY signal,aone-cycle pulse atthe portTR(transfer request) showsthat newdata is sent toprinter.DOUT7.0CS=0POCsend the stateof SR to CPU;CS=1CPU readthe datawrite in BRSignalSR7.0The register contains the flags for the POC. When SR(7)='1', it's idle.When SR(7)='0', it's busy.BR7.0The register holdsthevalue of datato print.printerPinsDescriptionInputclkInput the clock for the printer running.TRInput the pulse signal fromPOC, to shownewdatais ing.PD7.0Input the data fromPOC.OutputRDYOutput RDY signal,when RDY='1', it shows printer is waiting for newdata. z.-5. SimulationresultsConnection between cpu and pocConnection between poc and printerHere are the e*planationsof the simulation wave:interrupt mode:1、In theinterruptmode,modeis always set1, the print processoccuresby the IRQ signal frompoc.2、When S(7)=0, IRAsend0to cpu, it meansthere is aprint requirement andcpubegin to handle it. 3、Inthe interrupt processRWand A0are singals fromcpu to poc tocontrolthe action ofpoc.RW=1and A0=1writedata fromcpu(D) to poc(BR), means the begin of the interrupt process.RW=*and A0=*means there is no interrupt requirement .4、AftersendingdatastoBRandsetsrto"00000000, if RDY=1,pocgiveaimpulseinTRtomaketheprinter begintowork. AftertheTRsignalwecanseethattheinputRDYsignalfromtheprinterchange from 1 to0, whichshowsthattheTRsignalreallymaketheprinterwork.5、After data of BR has been transmitted into printer,poc setSR to "10000001itself to indicate that it es to ready and can get the ne*t print task.6、Let data plus 1 to indicate the ne*t new print cycle.6. Conclusion and Discussions1、As a parallel output controller ,poc module to act as an interface between cpu and printer. Form the simulation wave, we can see that my program meets the designs requirements.2、I divide the system into three parts, and one top entity. And I use two way to finishthe top entity. One is write program with vhdl language and another is create aschematic type file and connect wire.3、By designing the POC module, I find it helps to learn how to use of quartus and VHDL for design and simulation.The process of designing also teachs me the importantce of figuring out the struc- ture and timing of the task before programming .Appendi*:The program of processor:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;- Unment the following library declaration if using- arithmetic functions with Signed or Unsigned values-use IEEE.NUMERIC_STD.ALL;- Unment the following library declaration if instantiating- any *ilin* primitives in this code.-library UNISIM;-use UNISIM.Vponents.all;entity processor isport(clk : in std_logic;IRQ : in std_logic;DOUT : out std_logic_vector(7 downto 0):="00000000"RW : out std_logic:='0'-0read,1writeA0 : out std_logic:='0'-0sr,1brDIN : in std_logic_vector(7 downto 0);end processor;architecture Behavioral of processor issignal data:std_logic_vector(7 downto 0):="00000000"signal mode:std_logic:='1'-默认为中断模式beginprocess(clk)begin if clk'event and clk='1' thenif mode='1' then if IRQ='0' then A0<='1' RW<='1'-写入数据到BR data<=data+"00000001"-代表传输的字符 DOUT<=data; else A0<='*' RW<='*'-读入SR的数据 end if; end if;end if;end process;end Behavioral;the program of poc:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_arith.ALL;use ieee.std_logic_unsigned.ALL;- Unment the following library declaration if using- arithmetic functions with Signed or Unsigned values-use IEEE.NUMERIC_STD.ALL;- Unment the following library declaration if instantiating- any *ilin* primitives in this code.-library UNISIM;-use UNISIM.Vponents.all;entity poc isport(A0 : in std_logic;RW : in std_logic;clk : in std_logic;CS : in std_logic:='1'RDY : in std_logic;IRQ : out std_logic:='1'DOUT : out std_logic_vector(7 downto 0);PD : out std_logic_vector(7 downto 0);TR : out std_logic:='0'DIN : in std_logic_vector(7 downto 0);end poc;architecture Behavioral of poc issignal SR : std_logic_vector(7 downto 0):="10000001"signal BR : std_logic_vector(7 downto 0):="00000000"signal count:integer range 0 to 5:=0;type state_type is (s0,s1,s2);signal state: state_type:=s0;beginprocess(clk)begin if clk'event and clk='1' then TR<='0' IRQ<='1'case state iswhen s0=>-中断请求信号 if SR(7)='1' then IRQ<='0'-中断请求state<=s1; else IRQ<='1'state<=s2;-无中断请求 end if;when s1=>-读入读出选择 if RW='1' and A0='1' then-cpu写入数据到BR BR<=DIN; SR(7)<='0'state<=s2; elsif RW='0' and A0='0' then-cpu读入SR的数据 DOUT<=SR; elsif RW='1' and A0='0' then-cpu写入数据到SR SR<=DIN; elsif RW='0' and A0='1' then-cpu读入BR的数据 DOUT<=BR; end if;when s2=>-打印机 if RDY='1' then TR<='1' PD<=BR; SR(7)<='1' end if;state<=s0; end case;end if;end process;end Behavioral;the program of printer:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_arith.ALL;use ieee.std_logic_unsigned.ALL;- Unment the following library declaration if using- arithmetic functions with Signed or Unsigned values-use IEEE.NUMERIC_STD.ALL;- Unment the following library declaration if instantiating- any *ilin* primitives in this code.-library UNISIM;-use UNISIM.Vponents.all;entity print isport(RDY : out std_logic:='1'TR : in std_logic;PD : in std_logic_vector(7 downto 0);clk : in std_logic);end print;architecture Behavioral of print issignal count: integer range 0 to 5:=0;signal data: std_logic_vector(7 downto 0);signal ready:std_logic;beginprocess(clk,TR)begin if clk'event and clk='1' then if TR='1' then RDY<='0' ready<='0' data<=PD; else if ready='0' then count<=count+1; if count=5 then RDY<='1' ready<='1' count<=0; end if; end if; end if;end if;end process;end Behavioral;connection program:library IEEE;use IEEE.STD_LOGIC_1164.ALL;- Unment the following library declaration if using- arithmetic functions with Signed or Unsigned values-use IEEE.NUMERIC_STD.ALL;- Unment the following library declaration if instantiating- any *ilin* primitives in this code.-library UNISIM;-use UNISIM.Vponents.all;entity top isport(CLK : in std_logic);end top;architecture Behavioral of top issignal a0:std_logic;signal irq:std_logic;signal d1:std_logic_vector(7 downto 0);signal d2:std_logic_vector(7 downto 0);signal rw:std_logic;signal rdy:std_logic;signal pd:std_logic_vector(7 downto 0);signal tr:std_logic;ponent processorport(clk : in std_logic;IRQ : in std_logic;DOUT : out std_logic_vector(7 downto 0):="00000000"RW : out std_logic:='0'-0read,1writeA0 : out std_logic:='0'-0sr,1brDIN : in std_logic_vector(7 downto 0);end ponent;ponent pocport(A0 : in std_logic;RW : in std_logic;clk : in std_logic;CS : in std_logic:='1'RDY : in std_logic;IRQ : out std_logic:='1'DOUT : out std_logic_vector(7 downto 0);PD : out std_logic_vector(7 downto 0);TR : out std_logic:='0'DIN : in std_logic_vector(7 downto 0);end ponent;ponent printport(RDY : out std_logic:='1'TR : in std_logic;PD : in std_logic_vector(7 downto 0);clk : in std_logic);end ponent;beginu1: processor port map(clk=>CLK,A0=>a0,RW=>rw,IRQ=>irq,DOUT=>d1,DIN=>d2);u2: poc port map(clk=>CLK,A0=>a0,RW=>rw,IRQ=>irq,DOUT=>d2,DIN=>d1,RDY=>rdy,TR=>tr,PD=>pd);u3: print port map(clk=>CLK,RDY=>rdy,TR=>tr,PD=>pd);end Behavioral;. z.

    注意事项

    本文(东南大学信息学院poc实验报告.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开