{"title":"附录A5:有限状态机编程","authors":"","doi":"10.1002/9781119782735.app5","DOIUrl":null,"url":null,"abstract":"I was once asked by some of my students whether it was possible for software to run without hardware. This was an interesting question, and given that I spend much of my time writing computer programs, I felt well placed to answer it. First, I decided to look into the basic needs of software. The idea was to look at digital hardware and consider what basic hardware would be needed to produce a programmable system to make a finite state machine (FSM) that could be programmed to produce clock‐driven FSMs. It should be possible to use similar ideas for event‐driven FSM, but I have not looked into these yet. On reflection, it should be possible to program an FPGA with event cells that could be used with other hardware to make a programmable device. At first I looked at basic information available in some electronic digital devices, such as parallel loading counters, digital multiplexers, and quad latches, and eventually came up with the arrangement in Figure A5.1 for a programmable FSM. The system needs to be able to digitally count, so it makes use of a four‐stage clocked synchronous up counter. There is a need to be able to both increment the counter while also allowing the system to branch between states, so the counter needs to have parallel loading inputs so as to branch to these other states.","PeriodicalId":396893,"journal":{"name":"Digital System Design using FSMs","volume":"45 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-06-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Appendix A5: Programming a Finite State Machine\",\"authors\":\"\",\"doi\":\"10.1002/9781119782735.app5\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"I was once asked by some of my students whether it was possible for software to run without hardware. This was an interesting question, and given that I spend much of my time writing computer programs, I felt well placed to answer it. First, I decided to look into the basic needs of software. The idea was to look at digital hardware and consider what basic hardware would be needed to produce a programmable system to make a finite state machine (FSM) that could be programmed to produce clock‐driven FSMs. It should be possible to use similar ideas for event‐driven FSM, but I have not looked into these yet. On reflection, it should be possible to program an FPGA with event cells that could be used with other hardware to make a programmable device. At first I looked at basic information available in some electronic digital devices, such as parallel loading counters, digital multiplexers, and quad latches, and eventually came up with the arrangement in Figure A5.1 for a programmable FSM. The system needs to be able to digitally count, so it makes use of a four‐stage clocked synchronous up counter. There is a need to be able to both increment the counter while also allowing the system to branch between states, so the counter needs to have parallel loading inputs so as to branch to these other states.\",\"PeriodicalId\":396893,\"journal\":{\"name\":\"Digital System Design using FSMs\",\"volume\":\"45 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-06-25\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Digital System Design using FSMs\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1002/9781119782735.app5\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Digital System Design using FSMs","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1002/9781119782735.app5","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
I was once asked by some of my students whether it was possible for software to run without hardware. This was an interesting question, and given that I spend much of my time writing computer programs, I felt well placed to answer it. First, I decided to look into the basic needs of software. The idea was to look at digital hardware and consider what basic hardware would be needed to produce a programmable system to make a finite state machine (FSM) that could be programmed to produce clock‐driven FSMs. It should be possible to use similar ideas for event‐driven FSM, but I have not looked into these yet. On reflection, it should be possible to program an FPGA with event cells that could be used with other hardware to make a programmable device. At first I looked at basic information available in some electronic digital devices, such as parallel loading counters, digital multiplexers, and quad latches, and eventually came up with the arrangement in Figure A5.1 for a programmable FSM. The system needs to be able to digitally count, so it makes use of a four‐stage clocked synchronous up counter. There is a need to be able to both increment the counter while also allowing the system to branch between states, so the counter needs to have parallel loading inputs so as to branch to these other states.