Wednesday, April 1, 2020
Odyssey Essays (1148 words) - Greek Mythology, Odyssey, Odysseus
Odyssey The Odyssey, by Homer, is a classical piece of Greek literature. Throughout The Odyssey, Homer makes use of many literary techniques in order to give meaning to the poem beyond its significance as a work of historic fiction and help his readers in the comprehension of the story. One of these techniques is the use of motifs. In The Odyssey, perhaps the most important of Homer's motifs is the symbolic death and rebirth theme. This motif is used throughout The Odyssey to emphasize the growth and maturation of the characters. The first example of this motif occurs with Telemachus early in the book. Telemachus, in book I, is visited by the goddess Athena in disguise. In their conversation, Telemachus reveals the pain and suffering that he is experiencing as a result of living without knowing the status of his father, fearing that he is dead. ". .. and he left pain and lamentation to me. Nor is it for him alone that I grieve in my pain now (The Odyssey, Latimore, I. 242-3)." Symbolically, at this point in the text, Telemachus is dead. He is willing to take no action to save his home from the suitors or take any initiative to determine the status of his missing father. However, his symbolic death is not without a rebirth. Athena, disguised as Mentes, brings Telemachus back to life. She convinces him that he must take action to preserve the household and determine the fate of his father. This prompts Telemachus to take over his father's role in the household and journey forward to gather information about his missing father. His rebirth is further carried out in the story when he is reunited with his father; together, the two act to regain control of their household from the suitors. The next example of the death and rebirth motif occurs with our introduction to the story's main character and hero, Odysseus. Homer introduces Odysseus on the Kalypso's island. Odysseus's stay with Kalypso would cause his demise as that was the fate of mortals who lived with goddesses. On a more symbolic level, Odysseus was dead to the world as Kalypso forbids him from leaving the island and forces him to do her bidding. Odysseus was reborn, however, at the hands of Hermes, who was a messenger for Zeus. Hermes tells Kalypso that Odysseus is to be freed so Odysseus builds a raft and sets out for home. This symbolic rebirth is emphasized by Odysseus's emergence from the ocean on the island of the Phaiakians. He is washed ashore with nothing--his raft is destroyed and he is completely naked. This naked emergence can also be seen as symbolic of birth. Another reference to this rebirth is found at the end of book V. "As when a man buries a burning log in a black ash heap in a remote place in the country, where none live near as neighbors, and saves the seed of fire, having no other place to get a light from . . . (V. 488-91)." The phrase "seed of the fire" is used by Homer specifically to make reference to the rebirth of Odysseus; the term "seed" clearly brings to mind reproductive and birth images that would not be associated with a less metaphorical reference. Another instance in which Homer makes use of the death and rebirth motif occurs with Odysseus's adventure with the cyclops Polyphemus. Odysseus and his men are trapped in the cave of Polyphemus, which symbolizes their death. This death is further emphasized when Odysseus refers to himself as "Nobody". As Homer later recounts, those in the underworld are truly nobodies--they have no interaction with the living world and cannot even communicate. Odysseus is reborn through his own ingenuity and cleverness as he escaped Polyphemus's cave and announced to the cyclops his true identity, once again making himself born into the realm of mortals. The symbolic rebirth of Odysseus can be emphasized by the cave, which can be seen as a symbol of the womb, therefore making Odysseus' emergence from the cyclops's cave a true rebirth. The next example of the death and rebirth motif is a rather obvious one that has little symbolic inference: Odysseus' descent into the underworld in book XI. Homer uses many light and dark references to emphasize the death and rebirth theme in this book-- darkness symbolizing death and light symbolizing life and therefore rebirth. While in the underworld, Odysseus gains insights about his eventual return home. With this knowledge, Odysseus and his crew return to the world of
Saturday, March 7, 2020
Basic Directory Transversal essays
Basic Directory Transversal essays When digging into a system it is always smart to look for obvious lack of security instead of looking at holes within the security. In other words, if you want to poke around a system, look for the obvious, visible openings before engaging in actually attacking the security of the system. I look at this as being given access instead of gaining unauthorized access, which legally, is a big difference. Now I am not a lawyer, but these are two completely different things in my Basic directory transversal involves seeing what directories are publicly accessible without "breaking into" anything. More advanced forms of directory transversal involve using these basic principles to slide through security by using things like "/../" and hex codes to try and fool the software into allowing you access to directories that were not intended to be accessible. But lets stick to the basics for now. For example, depending on the type of web server running, you are probably familiar with the fact that there is a specific default directory structure that usually contains at least one subfolder called "images". No HTML is usually stored in this directory, but there are images there. If the privileges are not set up properly, you can browse to the images directory and see all of the files contains within. Take this one step further and see what other directories you can get into. You might find directories called "content", "templates", "members", or pretty much anything. Each one of these folder should be locked down to prevent unauthorized access. The sad reality is that they are not. During your normal browsing of a site, or your intentional targeting of a site, notice the directory structure of the site. Notice that you may suddenly jump two directories deep. You may click on a link from the main page to a page located at "../content/articles/page1.html". ...
Thursday, February 20, 2020
Allowing Gay Marriage Essay Example | Topics and Well Written Essays - 1500 words
Allowing Gay Marriage - Essay Example This is wrong for many reasons, not least of which is the infringement on basic human rights. For many years marriage was between a man and a woman, both of the same races, for the purpose of having children and raising a family. That definition has changed a great deal. For example, the law criminalizing the marriage of two people of opposite races has been abolished. Yet we still cling to the definition of marriage that includes ââ¬Å"a man and a womanâ⬠as though it were the only thing in the world that mattered. Why is it so difficult for us to accept change in a fluid world? We do not require people in married relationships to be the same race, in fact that would be discriminatory on more than one level. Yet we find it impossible to step beyond what is considered the definition of marriage. It is generally accepted that marriage is a union between a man and a woman, and that homosexuality is both unnatural and a recent invention. This idea is wrong, however. In fact homosexual tendencies have been observed in over 1,500 animal species, including dolphins, lions, and the dwarf chimpanzee which is one of humanities closest relatives. These homosexual tendencies range from life long partnerships, as with some birds, to single sexual interactions. In fact humans have accepted homosexuality for thousands of years. The first recorded homosexual couple dates back to 2400 BCE in ancient Egypt. These men were Niankhkhnum and Khnumhotep, and are depicted in Egyptââ¬â¢s most intimate embrace on the walls of their tomb. There have been numerous other cases of the acceptance of homosexuality in Greek and Roman times as well. We can see from this that homosexual tendencies are neither unnatural nor a new invention. What other arguments are there, then, against same-sex marriages? Unfortunately, the arguments are numerous, if a bit unfounded and full of rhetoric. The most
Tuesday, February 4, 2020
Are Democracies Inherently Peaceful Essay Example | Topics and Well Written Essays - 1750 words
Are Democracies Inherently Peaceful - Essay Example The main reason people oppose monocracy and military rule is that countries led by such ruling systems are more likely to engage in wars and other type of international conflicts as compared to democratic system. Citizens of those states cannot obtain a peaceful living environment and this situation adversely affects their quality of living. As compared to monocracy, oligocracy, or military rule, democracies are inherently peaceful unless they are unjustifiably attacked by external powers. Giving specific focus to the era of World War I & II, this paper will discuss how democracies are inherently peaceful. Democracy and Peace Many authors opine that democracies strive to provide a peaceful living situation to their people and ensure that living standards of citizens are improved continuously. Undoubtedly, a countryââ¬â¢s citizens are the primary stakeholders of a war as they actually bear the miseries of engaging in or financing wars. Therefore, common people are less likely to su pport wars or cross border intrusions. In a democratic country, people have more say in making decisions, and hence they can successfully veto individualsââ¬â¢ decision to fight and finance wars. In contrast, king is the sovereign ruler in monarchies and people have little participation in decision making. As a result, kings can individually take decisions to start or support wars with little personal risk. In order to improve this worse situation, leaders worldwide are strongly supporting democracy. In the opinion of Bass, the Clinton administrationââ¬â¢s efforts to form a global ââ¬Ëcommunity of democraciesââ¬â¢ was an attempt to bring peace to the whole world and it was greatly encouraged by many nations. As Bass notes, in their book ââ¬ËElecting to fightââ¬â¢, political scientists Edward D. Mansfield and Jack Snyder opine that emerging democracies are often unstable and are more likely to fight wars. To justify their claim that new democracies without having fu lly formed domestic institutions are aggressive, the authors cite the examples ranging from Franceââ¬â¢s attack on Prussia in 1870 and Vladimir Putinââ¬â¢s ongoing monstrous clampdown in Chechnya. However, sometimes even fully formed democratic countries become warlike because of several reasons. To explain, it is better to consider the 1959 attack on Egypt by Britain, France, and Israel or Bush administrationââ¬â¢s invasion of Iraq. Those wars were fought because the democratic governments often found it difficult to trust dictators for serious negations. Similarly, the US attack on Afghanistan in 2001 was in response to the 9/11 terror attack by Afghan militants. More clearly, some wars or interventions organized by democratic countries cannot be termed as aggressive or unpeaceful because they are ultimately aimed at the protection of fundamental democratic notions. As Buchanan points out, Elihu Root, Theodore Rooseveltââ¬â¢s secretary of state stated in 1917 that â⠬Å"to be safe, democracy must kill its enemy when it can and where it canâ⬠(np). The democratic peace theory, often referred to as democratic peace, strongly supports the argument that democracies are inherently peaceful. According to Pace, the democratic peace theory states that democracies are not likely to engage in armed conflict with other identified democracies (269). The democratic peace is contrast to the theories describing war engagement and it can be considered as a ââ¬Ëtheory of peaceââ¬â¢ explaining motives that discourage state-sponsored violence. The democratic peace theory is mainly based on the premise that democratic leaders are to bear the responsibility of war losses and they are responsible for answering a voting public. In order to retain their public support, democratic leaders
Monday, January 27, 2020
Medical Tourism Industry In India
Medical Tourism Industry In India Chapter 2: LITERATURE REVIEW 2.1 Medical tourism 2.1.1 Introduction to Medical tourism The word Medical means treatment of illness, disorder or injuries. In general, Tourism means traveling for pleasure. According to World Tourism Organization(WTO), the word Tourism compromises of the activities of persons traveling to and staying in place outside their usual environment for leisure, business and other purposes. Understanding of word medical and tourism individually is not sufficient to define Medical Tourism. Medical Tourism is combination of various and definite activities and clear understanding of such activities is essential. (Dr Prem, medical tourism) Considering the above sets of definitions, the following can be observed: When a person travels across the border and outside their usual environment, to seek medical service, the travel portion of the trip travel is called medical travel, and upon arrival, such person is called medical tourist, and such activities which includes utilization of medical services by the medical tourist, be it direct or indirect hospitality, cultural exposure or site-seeing, is called Medical Tourism. Hence, Medical Tourism could be defined as The Medical Tourism is the set of activities in which a person travels often long distance or across the border, to avail medical services with direct or indirect engagement in leisure, business or other purposes. Medical travel refers to the international phenomenon of individuals traveling, often great distances, to access health care services that are otherwise not available due to high costs, long waiting lists or limited health care capacity in the country of origin. (UNESCAP, 2007) Five key driving the increased popularity of medical tourism: Technology Technological improvements drive medical tourism, like more efficient global transportation and communication systems. The flattening of the world through the Internet and technology in medical industry are improving the quality of services. Patient access to health information on the Internet has increased knowledge and choices. Electronic communications and exchange of health information are faster and easier. Cost When patients dont have health insurance or their health insurance does not pay for all the care they need, the cost of the care is shifted to those patients with health insurance. This is known as Cost Shifting. The competition in industry is not operating on the proper objectives. The focus should be on providing care to patients, not to gain economy of other countries or build the tourism sector from needy to sick patients. Moreover, the cost of medical treatment in developed countries is extremely high. Hence, private, social and corporate health schemes are very costly. The above pay model is shifting to individuals. Therefore, Cost is another driving factor. Need The emergence of the new consumer needs, like avoiding waiting queues to get medical treatment or the possibility to have the latest medical treatment, requires new solutions which are not available in consumers home country. So, Need is another driving factor. Change Hospitals are adopting the more luxury hotel concept rather than a traditional unexciting general wards. After the surgical procedure, there is the opportunity to engage in attractive tourism, which is certainly a better change for patient. For example, a patient may take a safari trip in South Africa after an orthopedic surgery, a Taj Mahal trip after eye surgery in India, and a Mayan cultural experience after cosmetic surgery in Mexico. Hence, Change is another key factor. Demographics Demographic drivers such as an aging population due to baby boomers causing significant strain on national healthcare system are a driving factor. 2.1.2 Why choose India? Medical tourism or health tourism is on a rise in India. It is starting to be considered as one of the most attractive locations for medical tourism. As per a research report Booming Medical Tourism in India Indias medical tourism industry is going to grow by 27% in the time period 2009-2012. In 2007 alone, India received 450,000 medical tourists and is expected to receive close to 1.1 million medical tourists in 2012. Currently India has 16 JCI Accredited Hospitals across the country. Some of the most sought after procedures by medical tourists in India are alternative medicine, bone-marrow transplant, cardiac bypass surgery, eye surgery, orthopedic surgery, In Vitro Fertilization (IVF) or Infertility Treatment and dental procedures (such as dental implants, veneers etc.) commonly known an Dental tourism. Cosmetic surgery or cosmetic procedures and dental tourism are on a rise in India as well. So what are the reasons to choose India as your medical tourism destination? Country No. of Foreigners treated in (2002) From Strength Thailand 6,00,000 USA, UK Cosmetic surgery, organ transplant, dental treatments, Joint Replacement Jordhan 1,26,000 Middle East Organ Transplants, Fertility treatments, cardiac care India 1,00,000 Middle East, UK, USA Cardiac care, Joint replacement Malaysia 85,000 USA, Develop countries Cosmetic Surgery South Africa 50,000 USA Cosmetic Surgery, Dental Treatment First and foremost is the cost factor. The cost savings are immense. As per the report by Booming Medical Tourism in India, medical tourist can save up to 60%-95% on their treatment cost by getting their treatment done in India. The second most important factor according to me is the technology and international standards. Top Hospitals and healthcare facilities in India have the latest equipment and technology, which is at par with the medical facilities in the developed world. With the rise in medical tourism, more and more hospitals are investing in the latest equipments and getting internationally recognized certifications, such as JCI. As per Deloitte report, India has 10 JCI certified hospitals in 2007, and in 3 years India has added 6 more to the list. The doctors in India have the expertise, which again is at par with the doctors in the developed countries. Today Indian doctors in every field are recognized in the world community for their work and contributions. Most of the doctors working in the big name hospitals have degrees and certifications from US and Europe. Medical tourist get priority treatment in Indian hospitals as opposed to waiting for weeks or even months in their own country. This is a huge advantage as patients wanting to undergo say a hip or a knee replacement will have to bare the pain till they are not scheduled for treatment, which sometimes can take up to 3 months. No language barrier. As English is one of the most used languages in India, medical tourists dont feel lost in this country. Also, if you are from a non-English speaking country, translators are provided to make your stay as comfortable as possible. Due to its beautiful culture, history and increased reorganization and popularization of yoga, Ayurveda and meditation more and more people are flocking to India for mental and physical peace. Andhra Pradesh is one of the most prominent state in India for medical tourism as many of the big name medical centers have opened their facilities in this city. Other cities like Mumbai, Delhi, Bangalore, Ahmedabad are quickly catching up to attract international patients. Andhra Pradesh is considered to be the 5th largest state in India and the largest State in South India. It has a population of 76, 210, 007 and a literacy rate of 45.11% (Andhra Pradesh tourism, 2010). It has become a major IT hub. However its growth with respect to the medical tourism is very slow. Andhra Pradesh is very popular for many non-invasive therapies like Yoga and Ayurveda. Apart from these tow alternative therapy, naturopathy, traditional healing systems also play major role in developing medical tourism in the state. Recently it is competing with other states as some world class hospitals are established in the state. Some of the examples for these are Apollo hospitals, L V Prasad eye hospital, Nizamia general Hospital etc (India line, 2010). It is stressed that the medical tourism is not achieving prospects in Andhra Pradesh when compared to departments, IT and biotechnology. The failure in the medical tourism in Andhra Pradesh is attributed to the lack of synergy betwe en the health and tourist department. It is further noticed that, the number of foreign patients coming to Andhra Pradesh is just not even 1% to that of Bangkok (Hindu, 2010). It is clearly stated by many hospitals directors that the Government has to take necessary strategic approach in order to improve medical tourism in Andhra Pradesh. Apollo, Wockhardt, Fortis Healthcare, Max India, The Global Hospitals Group, MIOT Hospitals and some of the prominent hospitals catering to medical tourists. Apart from this, there are a large number of small clinics such as eye clinics, dental clinics, hair loss clinics, IVF clinics, message and spa clinics that exist across the country that are catering to medical tourist who are interested in elective surgery. (Nikhil Lamba, ClinicsOfWorld) 2.3 Collaboration and Partnership Medical tourism operators can be divided into two groups. First, there are medicalà centers such as hospitals and clinics. Medical centers that actively attract international patients are not involved only in the medical procedure itself, but are, in many cases, also responsible for all patient logistics from arrival to departure. Often the hospitals involvement already starts before arrival with the processing of the visa requirements and only ends after departure with patient follow up. The second group consists of medical tourism facilitators who function like agentsà and associated service providers. These are often smaller companies with just a fewà people on their payroll and most of them have spread their risk by dealing with hospitals and clinics in a number of different countries. Those medical tourist agents which are dealing exclusively with hospitals of only one country or region are exposed to the same risks as the hospitals with whom they work. These facilitators offer global health care options that will enable internationalà patients, primarily from the United States of America and Europe, to access worldà health care at a fraction of the cost of domestic care. By selling a type of medical value travel, they focus particularly on the self-insured patient. Some companies charge clients a flat rate commission or a percentage of the total cost of care. Others do not directly charge customers, but are paid by the hospitals to which their clients travel for care. Health care travel packages can include all costs associated with medical care, air and ground transportation, hotel accommodation, use of a cell phone in the destination country, practical assistance from a local company representative at the health care facility, travel arrangements for a companion, stays in nearby resorts during the post-operative recovery period and side trips to tourist destinations. 2.4 Promotional Strategies Corporate hospitals in Andhra Pradesh brought in five-star facilities and hi-tech medicine. Both the state administration and the corporate sector see the benefits of synergy for profits and have hence evolved separate as well as combined promotional strategies (Qadeer 2009; Gupta 2006). The state is proposing Medical Tourism in its own institutions. It invests directly in infrastructure and tourism to push its policy support to the corporate sector in earning foreign exchange by treating Medical Tourism as a trade. This encourages all the players directly or indirectly involved in Medical Tourism to invest and expand their businesses à ¢Ã¢â ¬Ã¢â¬Å" corporate hospitals, the aviation industry, private tour services, travel operators, the hotel and hospitality industries (Qadeer 2009; Gupta 2006). The state has several interests behind its promotional strategies for Medical Tourism. One is medical diplomacy to strengthen international relationships and friendships with neighbouring countries. Behind this seeming altruism lies the motive of enhancing economic growth, by not only commodifying medical care and supporting the private medical industry but also promoting investments in sectors supportive of MT. These include the Indian Healthcare Federation, private and public insurers, policy institutions, and the industry players mentioned above (CII-McKinsey 2002). Tie-ups within the hospitals, hotels and tour operators are being promoted and are on the rise (CII-McKinsey 2002). Hyderabad, capital city of Andhra Pradesh has opened international airports and now offer direct flights from abroad to ease travel for patients. Yashoda hospital in Hyderabad has an airport kiosk and is planning a helipad on the terrace to airlift their patients (Shaffi et al 2007). Asia has become a prominent destination for global medical tourists. Within it, India has a relative advantage, and Andhra Pradesh is evident from the institutions involved and the services offered as well as the low cost of treatment (Qadeer 2009; Gupta 2006). Its so-called win-win situation however, is based on the assumption that services for the haves and have-nots are totally independent of each other and the disconnect is rational. It is this very assumption that is flawed. In its effort to fill its coffers through MT, the government has underplayed the obvious contradiction between a vast uncared à ¢Ã¢â ¬Ã¢â¬Å" for majority and an unethical focus on profits through MT (Shaffi et al 2007). It has ignored many of the underlying negative implications of MT such as shift of subsidies to the private sector and extremely low inputs in public sector healthcare (Roy Choudhury and Dutta 2004). India has 16% of the worlds population, 18% of the worlds mortality and 20% of the worlds morbidity and our public expenditure on health is still 1% of gross domestic product (GDP). Budget 2010 is no different from the previous years (Bali 2010) (Qadeer 2009; Gupta 2006). Added to this is the incoming evidence of inequity and rising costs of medical care. The huge gap permitted between thesalary scales of public and private professionals has encouraged the movement of personnel from the former to the latter. This is particularly true of the shortage of nurses in the public sector, who are leaving for private and overseas jobs (Shaffi et al 2007). Attracted by the higher scales and an open system of consultancy, experienced specialists too are moving away from public sector. While experienced doctors in the public sector are allowed to work in private institutions that benefit from their experience and fame, the government has no innovative policy to retain competent professionals or to regulate salaries and employment conditions across sectors (Qadeer 2009; Gupta 2006). Marginalising the concept of comprehensive primary healthcare by limiting primary-level care to at best First Referral Units (FRUs) and district hospitals denies tertiary care to the less-privileged unless they are ready to sell off their assets. This is reflected in the burden of debt due to illness treatment, which has increased to 40% of the total debt as per the 52nd round National Sample Survey (2000). Another critical dimension of this growing industry is the probable impact it has on the countries it serves. Already there are concerns expressed in the US. Asian MT is seen differently by different stakeholders. The insurance companies and medical Organizations see its outsourcing potential for lowering their own costs and enhancing profits. The uninsured and those who cannot afford their own private services see it as an opportunity. The state sees it as a mechanism for savings and as a price control mechanism in its medical market (Qadeer 2009; Gupta 2006).
Sunday, January 19, 2020
Cricket, A Civilized Game Essay -- essays research papers
Many different sports and games have been invented and started in England. Many of these are still played and remain very popular to the people of that country. The game of cricket is a very complicated sport to those who have never played with all of the rules and regulations but is one to be enjoyed by all. The exact measurements of the cricket playing field have not been officially agreed upon. The area is usually around 450 feet by 500 feet. When setting up the wicket, three stumps and driven into the ground. Each stump is about 31 inches along with one pointed end and one rounded end (Formals 24). Twenty-eight inches is left above the turf of the field. The three stumps are placed in a line with one another and the space between is just small enough to prevent a ball from passing through. When aligned they measure nine inches from the outside edges of the outer two stumps. On the rounded end of each stump is cut a half-inch groove in which the two remaining pieces of wood are pl aced (Formals 26). These two small, cylindral objects, called bails are what the bowler is intent on knocking off. After one wicket has been constructed, another is set up sixty-six feet away. Near each wicket a set of lines are drawn, these marks are the bowling and popping creases. Each wicket has its own bowling and popping crease. The bowling crease is drawn in the straight line with the three stumps measuring four feet on each side of the two end stumps. The second line, the popping crease,...
Saturday, January 11, 2020
Fpga Based System
Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 1 The Spartan-3E Tutorial 2: Introduction to using the PicoBlaze Microcontroller Version 1. 0 Author: Jasmine Banks à © 2012, Queensland University of Technology Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 2 Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 3 Acknowledgements Parts of this tutorial are based on an earlier version written for Project Navigator version 9. , written by Michael Bakker, Matthew Grace and Warwick Kilroy, as part of ENB345 ââ¬â Advanced Design in 2008. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 4 Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 5 Glossary ALU DOS FPGA JTAG LED KCPSM3 Arithmetic Logic Unit Disk Operating Syst em Field Programmable Gate Array Joint Test Action Group Light Emitting Diode (K)Constant Coded Programmable State Machine ââ¬â a very simple 8-bit microcontroller optimised for Spartan-3 devices [2].Reduced Instruction Set Computing VHSIC Hardware Description Language Very High Speed Integrated Circuit RISC VHDL VHSIC Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 6 Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 7 Table of Contents page Acknowledgements â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Glossary â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â ¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. List of Figures â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. List of Tables â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 1. 0 Introduction â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦ 1. 1 Design Functionality â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦.. 1. 2 Relevant Documentation .. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â ¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦. 1. 3 Pre-requisite Knowledge â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. 1. 4 Scope â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦.. 2. 0 Equipment â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦. 3. 0 Background ââ¬â The PicoBlaze Microcontroller â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦ 4. 0 Procedure Part 1 ââ¬â PicoBlaze â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 4. 1 PicoBlaze Download â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 4. 2 Copy Files â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 4. 3 Assembly Language Code â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 4. Running the Assembler â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â ¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 5. 0 Procedure Part 2 ââ¬â Project Navigator â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 5. 1 Startup â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦ 5. 2 Creating a New Project â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦. â⬠¦. 5. 3 Adding Source Files â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 5. 4 tutorial. vhd and kcpsm3. vhd ââ¬â Observations â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢ ⬠¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. 5. 5 Adding a top_level Entity â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 5. 6 Editing the top_level Entity â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 5. 7 top_level. vhd ââ¬â Code â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. 5. 8 Syntax Checking â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 5. 9 Pin Assignment â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢ ⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 5. 10 Synthesize, Translate, Map and Place & Route â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 5. 11 Download Design to Board â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦ 6. 0 Running the Program on the Spartan-3E Board â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 7. 0 Further Information â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 8. 0 References â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦ Appendix A ââ¬â top_level. vhd â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ 3 5 9 13 15 15 15 15 15 17 19 21 21 21 22 23 31 31 32 35 38 40 45 49 52 54 59 61 75 77 79 81 Xilinx Spartan-3E Project Navigator Version 14. 3Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 8 Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 9 List of Figures page Figure 2. 1: Spartan-3E Development Board â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 3. 1: PicoBlaze components â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â ¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 3. 2: KCPSM3 component declaration â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 3. 3: Block Memory component declaration â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 4. 1: KCPSM3 files after unzipping â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Figure 4. 2: Simple PicoBlaze program . â⬠¦. â⬠¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 4. 3: Files in the working directory â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Fi gure 4. 4: KCPSM3 assembler files â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 4. 5: DOS Command Prompt window, after changing to working directory â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 4. 6: DOS Command Prompt window, with KCPSM3 command typed in â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 4. 7: DOS Command Prompt window, after KCPSM3 successfully run â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 4. 8: Error message which appears if KCPSM3 is run on a 64-bit machine â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Figure 4. 9: DOSBox window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 4. 10: DOSBox window, with KCPSM3 command typed in â⬠¦.. â⬠¦Ã¢â¬ ¦Ã¢â ¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 4. 11: DOSBox window, after KCPSM3 successfully run â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 4. 12: Files in the working directory after KCPSM3 successfully run â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 1: Project Navigator Software Startup Window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 2: New Project Wizard, Create New Project Page â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.Figure 5. 3: New Project Wizard, Project Settings Page â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 4: New Project Wizard, Project Summary Page â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã ¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 5. 5: Adding a source file to the project â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 6: Add Source file selection window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 5. 7: Adding Source Files window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 5. 8: kcpsm3 and tutorial in the Sources window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. 7 19 20 20 21 22 22 23 23 24 24 25 26 27 28 29 31 32 33 34 35 36 36 37 Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 10 Figure 5. 9: Source code for tutorial. vhd displayed in a tab â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 10: tutorial entity â⬠¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 5. 11: kcpsm3 entity . â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦. Figure 5. 12: Adding a source file to the project â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦ Figure 5. 3: New Source Wizard, Select Source Type â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 14: New Source Wizard, Define Module â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦ Figure 5. 15: New Source Wizard, Summary â⬠¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 5. 16: top_level in the Sources window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 5. 17: top_level. vhd, as displayed in Project Navigator, before editing â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 5. 18(a): Architecture of top_level. vhd, part 1 â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 5. 18(b): Architecture of top_level. vhd, part 2 à ¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦.. Figure 5. 19: top_level in the Sources window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦..Figure 5. 20: Component declarations â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 21: Signal declarations â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 5. 22: Component instantiations â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦ Figure 5. 23: Input por ts â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 5. 24: Output ports â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 5. 5: Portion of Project Navigator screen with Synthesize ââ¬â XST expanded â⬠¦Ã¢â¬ ¦.. â⬠¦.. Figure 5. 26: A green tick next to Check Syntax shows that no errors were found â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 27: Example where an error was purposely introduced â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 5. 28: Portion of Project Navigator screen, with User Constraints expanded â⠬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 29: Dialog Box asking if you wish to create an Implementation Constraint File . â⬠¦. Figure 5. 30: Initial appearance of PlanAhead window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 31: I/O Ports displayed in a separate window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. 38 38 39 40 41 42 43 44 45 46 47 48 49 50 50 51 51 52 53 53 55 55 56 56Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 11 Figure 5. 32: I/O Ports window with individual ports expanded â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦. Figure 5. 33: I/O Ports window with values filled in â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 34: Portion of Projec t Navigator screen, with Implement Design expanded â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 5. 35: Portion of Project Navigator screen, after Translate, Map and Place & Route have successfully been run â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦.. Figure 5. 36: Portion of Project Navigator screen, with Implement Design expanded â⬠¦.. â⬠¦Ã¢â¬ ¦ Figure 5. 7: Portion of Project Navigator screen, after Generate Programming File has successfully been run â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦. Figure 5. 38: The initial iMPACT window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦.. Figure 5. 39: iMPACT window, after double-clicking on Boundary Scan â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. Figure 5. 40: iMPACT window, showing Initialize Chain selec ted â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 5. 41: iMPACT window, assign configuration files â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦.. Figure 5. 42: iMPACT window, assigning the configuration file for the xc3e500e â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦.. Figure 5. 43: iMPACT window, dialog box asking if we wish to attach an SPI or BPI PROM . Figure 5. 4: : iMPACT window, bypassing the xcf04s â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 5. 45: iMPACT window, bypassing the xc2c64a â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 5. 46: iMPACT window, Device Programming Properties dialog box â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 5. 47: iMPACT window, showing the device chain â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â ¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦.. Figure 5. 48: iMPACT window, options which appear when right clicking on the xc3s500e .. Figure 5. 49: iMPACT window, after the program has been successfully downloaded to the Spartan-3E board â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦ Figure 6. 1: The Spartan-3E board with the program running â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦.. 57 58 59 60 61 2 63 64 65 66 67 68 69 70 71 72 72 73 75 Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 12 Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 13 List of Tables Page Table 5. 1: Input/output ports of the top_level entity . â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦.. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦ Table 5. 2: Values to enter in the I/O Ports window â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦Ã¢â¬ ¦Ã¢â¬ ¦ â⬠¦Ã¢â¬ ¦. â⬠¦Ã¢â¬ ¦ 54 57 Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 14 Xilinx Spartan-3E Project Navigator Version 14. 3Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 15 1. 0 Introduction This tutorial is designed to help new users become familiar with using the PicoBlaze microcontroller with the Spartan-3E board. The tutorial gives a brief introduction to the PicoBlaze microcontroller, and then steps through the following: â⬠¢ â⬠¢ â⬠¢ â⬠¢ Writing a small PicoBlaze assembly language (. psm) file, and stepping through the process of assembling the . psm file using KCPSM3. Writing a top level VHDL module to connect the PicoBlaze microcontroller (KCPSM3 component) and the program ROM, and to connect the required input and output ports.Connecting the top level module inputs and outputs to the switches, buttons and LEDs on the Spartan-3E board. Downloading the program to the Spartan-3E board using the Project Navigator software. 1. 1 Design Functionality The code written in this tutorial reads the values of the four switches and the four push buttons, and displays the current values on the eight LEDS. 1. 2 Relevant Documentation Before commencing this tutorial, it would be helpful to download the Spartan-3E FPGA Starter Kit Board User Guide [1], and the PicoBlaze 8-bit Embedded Microcontroller User Guide [2]. 1. Pre-requisite Knowledge Before commencing this tutorial, the user should work through ââ¬Å"The Spartan-3E Tutorial 1: Introduction to FGPA Programmingâ⬠[3]. 1. 4 Scope This tutorial is designed to help the user who is just starting to ââ¬Å"get intoâ⬠using the PicoBlaze with the Spartan-3E. It steps through the process of creating a very simple PicoBlaze program, running the assembler, putting the VHDL components together in Project Navigator, and downloading the final program to the board. It is not designed to be a tutorial on VHDL syntax or to provide detailed information on the PicoBlaze.For help with VHDL, the user can consult with a number of textbooks on the subject, such as [4,5], or find help online. The book by Chu [6] is also a useful reference for the Spartan-3 with many useful examples. Reference designs for the Spartan-3E can also be found here [7]. For detailed information about the features and instruction set of the PicoBlaze, the user can consult the documentation in [2,8]. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 16 Xilinx Spartan-3E Project Navigator Version 14. 3Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 17 2. 0 Equipment The following are required to work through this tutorial: â⬠¢ The Xilinx ISE Project Navigator software. Version 14. 3 was used in this tutorial, but older versions of the software can be used. The software can be downloaded with a free WebPack license from the Xilinx website, http://www. xilinx. com/. The user will need to register and log in. The Spartan-3E Starter Kit, including the Spartan-3E development board, power cable and USB cable for PC connection. The Spartan-3E development board is shown in Figure 2. 1.The Picoblaze 8-bit Microcontroller software. The software can be downloaded for free from the Xilinx website, http://www. xilinx. com/. Again the user will need to register and log in. If a 64-bit machine is being used, software which can run 32-bit DOS programs, such as DOSBox, will be needed to run the KCPSM3 executable. DOSBox can be downloaded from http://www. dosbox. com/. â⬠¢ â⬠¢ â⬠¢ Power JTAG ON/OFF Reset Button FPGA USB LCD LEDs Push Buttons Figure 2. 1: Spartan-3E Development Board. SW0-3 Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 18 . 0 Background ââ¬â The PicoBlaze Micocontroller The PicoBlaze is an 8-bit RISC microcontroller which is specifically designed and optimized for the Spartan-3 family. One of its main advantages is its small size, requiring only 96 FPGA slices. It is provided as a free, source-level VHDL file with royalty-free re-use within Xilinx FPGAs [2]. Figure 3. 1 shows that the PicoBlaze consists of two components. The KCPSM3 component provides the ALU, registers, scratchpad RAM etc. The Block Memory (Program) component stores the instructions to be executed. This typically consists of a Block RAM, of 1024 bytes in size.Figure 3. 1: PicoBlaze components [8]. The basic design process using the PicoBlaze follows the steps below: 1. A PicoBlaze program is written in assembly language. This file is given the extension . psm. 2. The KCPSM3 assembler is run on the . psm file, and a VHDL file (extension . vhd) which embeds the instructions in the Block Me mory component, is output. The name of the . vhd file will be derived from the name of the . psm file, i. e. , if the . psm file is myprog. psm, then the . vhd file will be myprog. vhd. 3. The VHDL code for the Block Memory and KCPSM3 modules is loaded into Project Navigator.Further VHDL code will need to be written to connect the two modules and interface to the outside world. 4. The project is compiled using the Project Navigator Software, and ultimately downloaded to the Spartan-3E board (or other target hardware). Figures 3. 2 and 3. 3 show the VHDL component declarations for the KCPSM3 and Block Memory respectively. Note that the name of the Block Memory component is derived from the name of the original . psm file, i. e. , if the . psm file was myprog. psm, the Block Memory component will be called myprog. Xilinx Spartan-3E Project Navigator Version 14. Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 19 component kcpsm3 port (address instruction port_id write_s trobe out_port read_strobe in_port interrupt interrupt_ack reset clk end component; : : : : : : : : : : : out std_logic_vector(9 downto 0); in std_logic_vector(17 downto 0); out std_logic_vector(7 downto 0); out std_logic; out std_logic_vector(7 downto 0); out std_logic; in std_logic_vector(7 downto 0); in std_logic; out std_logic; in std_logic; in std_logic); Figure 3. 2: KCPSM3 component declaration. Name of component derived from name of . psm file omponent myprog port (address : in std_logic_vector(9 downto 0); instruction : out std_logic_vector(17 downto 0); clk : in std_logic); end component; Figure 3. 3: Block Memory component declarations. In addition, it is possible to download a new program into the Block Memory, using the JTAG port on the Spartan-3E board. This can provide a convenient means to update the program without having to recompile the VHDL code in Project Navigator. This is not covered by this introductory tutorial, and the user can refer to documentation such a s [3] for more information. Xilinx Spartan-3EProject Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 20 4. 0 Procedure Part 1 ââ¬â PicoBlaze 4. 1 PicoBlaze Download 1. Download the file KCPSM3. zip from http://www. xilinx. com/. The version of the software for the Spartan-3 family should be chosen. 2. Unzip the file. After unzipping, the files should appear as shown in Figure 4. 1. Figure 4. 1: KCPSM3 files after unzipping. The file KCPSM3_Manual. pdf is listed as reference [8] in this tutorial. 4. 2 Copy Files 1. Create a directory called tutorial_2 in an appropriate location.This will be the working directory for the rest of this tutorial. 2. Copy the following files in the Assembler directory into tutorial_2: â⬠¢ â⬠¢ â⬠¢ â⬠¢ KCPSM3. EXE ROM_form. coe ROM_form. v ROM_form. vhd 3. Copy the following file in the VHDL directory into tutorial_2: â⬠¢ kcpsm3. vhd Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 21 4. 3 Assembly Language Code 1. Open a text editor (for example, Notepad or Wordpad), and enter the text shown in Figure 4. 2. The text consists of a very simple program written in the KCPSM3 assembly language.The program runs in an infinite loop, reading the contents of an input port at address 00h (connected to the switches) into a register, and writing the contents of this register to an output port at address 80h (connected to the LEDs). Characters which appear after a ââ¬Å";â⬠in each line are comments. ; ; ; ; ; Simple loop that puts contents of input register into the output register switches DSIN $00 LEDS DSOUT $80 ; read switches into register s0 ; write contents of s0 to output port 80 ââ¬â leds. ; loop back to start start: INPUT s0, 00 OUTPUT s0, 80 JUMP start Figure 4. 2: Simple PicoBlaze program. . Save your file to tutorial. psm, in the tutorial_2 directory. If using Notepad, be careful not to save the f ile as tutorial. psm. txt. The name of the file should be restricted to 8 characters. The tutorial_2 directory should now contain the files shown in Figure 4. 3. Figure 4. 3: Files in the tutorial_2 working directory. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 22 4. 4 Running the Assembler As shown in Figure 4. 4, the assembler takes the . psm file as input, as well as three Block RAM initialisation templates.Fifteen different output files are produced. In this tutorial, we will be using the . vhd output file. Figure 4. 4: KCPSM3 assembler files [2]. The assembler is a DOS executable file, KCPSM3. exe, which can be run in a DOS Command Prompt window. 4. 4. 1 32-bit Operating Systems 1. Open a DOS Command Prompt window by selecting: Start>All Programs>Accessories>Command Prompt > > > 2. Use the cd command to change into the tutorial_2 working directory, as shown in Figure 4. 5. Figure 4. 5: DOS Command Prompt wind ow, after changing to working directory. Xilinx Spartan-3E Project Navigator Version 14. 3Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 23 3. Now type the command KCPSM3 tutorial. psm, as shown in Figure 4. 6. Figure 4. 6: DOS Command Prompt window, with KCPSM3 command typed in. After entering the command KCPSM3 tutorial. psm, numerous messages should fly past on the screen, ending with ââ¬Å"KCPSM3 successful. KCPSM3 completeâ⬠, as shown in Figure 4. 7. After the assembler has successfully run, the working directory should contain many more files, as shown in Figure 4. 12. Figure 4. 7: DOS Command Prompt window, after KCPSM3 successfully run. 4. Type exit to close the Command Prompt window.Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 24 4. 4. 2 64-bit Operating Systems The KCPSM3 executable will only work on 32-bit operating systems. If you are using a 64-bit machine and attempt to run KCPM S3 in a DOS Command Prompt window, the error message shown in Figure 4. 8 will appear. Figure 4. 8: Error message which appears if it is attempted to run KCPSM3 on a 64-bit machine. One way to work around this and run KCPSM3 is to use the DOSbox software, which can be downloaded from http://www. dosbox. com/. 1.Download and run DOSBox. 2. Mount the working directory and change into this directory. When DOSbox is started up, a command window which resembles the DOS Command Prompt window appears. However, it is first necessary to mount the working directory to a drive letter before being able to enter this directory and run programs. This is done with the mount command: mount Figure 4. 9 shows the commands entered to mount and change into the working directory. In this case, the working directory is mounted as drive letter c. The command c: is then used to change into this directory. Xilinx Spartan-3EProject Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Micro controller 25 Figure 4. 9: DOSBox window, commands entered to mount and change into the working directory. 3. Now type the command KCPSM3 tutorial. psm, as shown in Figure 4. 10. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 26 Figure 4. 10: DOSBox window, with KCPSM3 command typed in. After entering the command KCPSM3 tutorial. psm, numerous messages should fly past on the screen, ending with ââ¬Å"KCPSM3 successful. KCPSM3 completeâ⬠, as shown in Figure 4. 11.After the assembler has successfully run, the working directory should contain many more files, as shown in Figure 4. 12. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 27 Figure 4. 11: DOSBox window, after KCPSM3 successfully run. 4. Type exit to close DOSBox. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 28 Figure 4. 1 2: Files in the working directory after KCPSM3 successfully run. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 9 Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 30 5. 0 Procedure Part 2 ââ¬â Project Navigator 5. 1 Startup Start the Project Navigator software by selecting: Start>All Programs>XILINX Design Tools>Xilinx ISE Design Suite 14. 3>ISE Design > > > > Tools>32 bit Project Navigator > or Start>All Programs>XILINX Design Tools>Xilinx ISE Design Suite 14. 3>ISE Design > > > > Tools>64 bit Project Navigator > depending on your system. The Xilinx Project Navigator software should start. The initial window which appears on startup should appear as shown in Figure 5. . Figure 5. 1: Project Navigator Software Startup Window. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 31 5. 2 Cre ating a New Project 1. Select File>New Project. The New Project Wizard will appear. > 2. Type tutorial_2 in the Name: field. 3. Choose Location: and Working Directory: as the tutorial_2 working directory. 4. Verify that Top-level source type: is selected as HDL. 5. The properties should now be set as shown in Figure 5. 2. Click Next to move to the Project Settings page. Figure 5. 2: New Project Wizard, Create New Project Page. 6.Fill in the properties as follows: â⬠¢ â⬠¢ â⬠¢ â⬠¢ Evaluation Development Board: None Specified or Spartan-3E Starter Board Product Category: All Family: Spartan3E Device: XC3S500E Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller â⬠¢ â⬠¢ â⬠¢ â⬠¢ â⬠¢ â⬠¢ â⬠¢ â⬠¢ â⬠¢ â⬠¢ 32 Package: FG320 Speed Grade: -4 Top-Level Source Type: HDL Synthesis Tool: XST (VHDL/Verilog) Simulator: ISim (VHDL/Verilog) Preferred Language: VHDL Property Specificatio n in Project File: Store All Values Manual Compile Order: unchecked VHDL Source Analysis Standard: VHDL-93 Enable Message Filtering: uncheckedNote if you choose Evaluation Development Board as Spartan-3E Started Board, properties from Product Category through to Speed will be filled in automatically. However, you must make sure that Preferred Language is set to VHDL. The properties should now be filled in as shown in Figure 5. 3. Figure 5. 3: New Project Wizard, Project Settings Page. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 33 7. Click Next to move to the Project Summary page, which will appear as shown in Figure 5. 4. Figure 5. 4: New Project Wizard, Project Summary Page. 8.Click Finish to exit the New Project Wizard. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 34 5. 3 Adding Source Files 1. Select Project>Add Source as shown in Figure 5. 5 . A window will appear allowing you to > choose one or more files. Figure 5. 5: Adding a source file to the project. 2. Select TUTORIAL. VHD and kcpsm3. vhd as shown in Figure 5. 6. Both files can be selected at once by clicking on the first filename, holding down the CTRL key and clicking the second filename. Alternatively, one file can be selected and steps 1-3 repeated for the second file.Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 35 Figure 5. 6: Add Source file selection window. 3. The Adding Source Files window will now appear as shown in Figure 5. 7, showing the two files selected to be added to the project. Click OK. Figure 5. 7: Adding Source Files window. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 36 As shown in Figure 5. 8, kcpsm3 and tutorial will now appear in the Sources window. Doubleclicking on either filename in the Sources win dow will display the file in a tab.Sources Window Figure 5. 8: kcpsm3 and tutorial in the Sources window. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 37 5. 4 tutorial. vhd and kcpsm3. vhd ââ¬â Observations 1. Double-click on tutorial in the Sources window. This will display the source code in a tab, as shown in Figure 5. 9. It can be seen that Project Navigator colour codes the text of VDHL files, to make them easier to read. Comment lines, which start with ââ¬Å"- -â⬠are displayed in green. Reserved words of the VHDL language are displayed in blue, while VHDL types are displayed in red.Everything else is left as black. tutorial in Sources window Source code for tutorial. vhd appears in this tab Figure 5. 9: Source code for tutorial. vhd is displayed in a tab. A close up of the code for the tutorial entity is shown in Figure 4. 10. Note that this corresponds to the Block Memory (Program) component of Fi gures 3. 1 and 3. 3. Figure 5. 10: tutorial entity. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 38 2. Double-click on kcpsm3 in the Sources window, to display the source code for kcpsm3. vhd.A close up of the code for the kspsm3 entity is shown in Figure 5. 11. Note that this corresponds to the KCPSM3 block of Figures 3. 1 and 3. 2. Figure 5. 11: kcpsm3 entity. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 39 5. 5 Adding a top_level Entity VHDL code still needs to be written to tie together the kcpsm3 and tutorial entities, and also to interface with the Spartan-3E board. We will create a file called top_level. vhd for this purpose. 1. Select Project>New Source as shown in Figure 5. 12. The New Source Wizard will appear. > Figure 5. 2: Adding a source file to the project. 2. Select Source Type as VHDL Module. 3. Enter the file name as top_level, a nd enter the location of the file (same as the project location entered earlier. 4. Verify that the Add to project box is checked. shown in Figure 5. 13. The New Source Wizard should now appear as Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 40 Figure 5. 13: New Source Wizard, Select Source Type. 5. Click Next to go to the Define Module window. 6. Define the ports (inputs and outputs of the design) by entering the information as shown in Figure 5. 14.These ports are described as follows: â⬠¢ â⬠¢ â⬠¢ switches will be an input consisting of 8 bits, and will be connected with the 4 slide switches and 4 push buttons on the Spartan-3E. clk will be an input consisting of 1 bit, and will be connected to the clock input. LEDs will be an output consisting of 8 bits, and will be connected with the LEDs on the Spartan-3E. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoB laze Microcontroller 41 Figure 5. 14: New Source Wizard, Define Module. 7. Click Next to move to the Summary page, as shown in Figure 5. 15. Xilinx Spartan-3E Project Navigator Version 14. Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 42 Figure 5. 15: New Source Wizard, Summary. 9. Click Finish to exit the New Source Wizard. As shown in Figure 5. 16, top_level will now appear in the Sources window. Double-clicking on top_level in the Sources window will display the file, top_level. vhd in a tab. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 43 top_level in Sources window Figure 5. 16: top_level in the Sources window. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 4 5. 6 Editing the top_level Entity 1. Double-click on top_level in the Sources window to display the file, top_level. vhd in a tab. The code for top_level. vhd is shown in Figure 5. 17. entity architecture Figure 5. 17: top_level. vhd, as displayed in Project Navigator, before editing. The code in Figure 5. 17 contains an entity and an architecture section. The entity section defines the inputs and outputs of this hardware block. In this case these have been automatically added using the New Source Wizard. The architecture section still needs to be written for this module. 2. Replace the architecture block in Figure 5. 7 with the code in Figure 5. 18(a) and (b). This code is a trimmed down version of the Initial Design for the Spartan-3E FPGA Starter Kit Board (the original design shipped with the board), downloaded from [7]. For reference the complete code for top_level. vhd is listed in Appendix A. Note that where VDHL code is listed in this tutorial, the same colour coding as Project Navigator is used, to assist with readability. 3. Save the file by selecting File > Save from the main menu. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutoria l 2: Introduction to Using the PicoBlaze Microcontroller 45 rchitecture Behavioral of top_level is ââ¬â declaration of KCPSM3 (always use this declaration to call ââ¬â up PicoBlaze core) component kcpsm3 port (address : out std_logic_vector(9 downto 0); instruction : in std_logic_vector(17 downto 0); port_id : out std_logic_vector(7 downto 0); write_strobe : out std_logic; out_port : out std_logic_vector(7 downto 0); read_strobe : out std_logic; in_port : in std_logic_vector(7 downto 0); interrupt : in std_logic; interrupt_ack : out std_logic; reset : in std_logic; clk : in std_logic); end component; ââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬â declaration of program memory (here you will specify the entity name ââ¬â as your . psm prefix name) component tutorial port (address : in std_logic_vector(9 downto 0); instruc tion : out std_logic_vector(17 downto 0); clk : in std_logic); end component; ââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬â Signals used to connect PicoBlaze core to program memory and I/O logic signal address : std_logic_vector(9 downto 0); signal instruction : std_logic_vector(17 downto 0); signal port_id : std_logic_vector(7 downto ); signal out_port : std_logic_vector(7 downto 0); signal in_port : std_logic_vector(7 downto 0); signal write_strobe : std_logic; signal read_strobe : std_logic; signal interrupt_ack : std_logic; signal reset : std_logic; ââ¬â the following input is assigned an inactive value since it is ââ¬â unused in this example signal interrupt : std_logic :='0â⬠²; ââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âà ¢â¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬â Start of circuit description begin ââ¬â Instantiating the PicoBlaze core processor: kcpsm3 port map (address => address, instruction => instruction, port_id => port_id, write_strobe => write_strobe, Figure 5. 18(a): Architecture of top_level. vhd, part 1. Xilinx Spartan-3E Project Navigator Version 14. 3 Tutorial 2: Introduction to Using the PicoBlaze Microcontroller 46 ut_port => out_port, read_strobe => read_strobe, in_port => in_port, interrupt => interrupt, interrupt_ack => interrupt_ack, reset => reset, clk => clk); ââ¬â Instantiating the program memory program: tutorial port map (address => address, instruction => instruction, clk => clk); ââ¬â Connect I/O of PicoBlaze ââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬â- KCPSM3 Define input ports ââ¬âà ¢â¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬âââ¬â- The inputs connect via a pipelined multiplexer input_ports: process(clk) begin if clk'event and clk='1â⬠² then case port_id(1 downto 0) is ââ¬â read simple toggle switches and buttons at address 00 hex when ââ¬Å"00â⬠=> in_port instruction, port_id => port_id, write_strobe => write_strobe, out_port => out_port, read_strobe => read_strobe, in_port => in_port, interrupt => interrupt, interrupt_ack => interrupt_ack, reset => reset, clk => clk); ââ¬â Instantiating the
Subscribe to:
Posts (Atom)