You are currently browsing the archives for the real-time category.
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Mar | ||||||
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||
- 1000 BASE-T (3)
- 1000BASE-LX (1)
- 1000BASE-SX (1)
- 100BASE-FX (2)
- 100BASE-SX (1)
- 100BASE-TX (3)
- 10BASE-FL (1)
- 10BASE-T (2)
- 10GBASE-EW (1)
- 10GBASE-LR (1)
- 10GBASE-LRM (1)
- 10GBASE-LW (1)
- 10GBASE-LX4 (1)
- 10GBASE-SR (1)
- 10GBASE-SW (1)
- 10GbE (1)
- 3D (2)
- 802.3af-2003 (1)
- Acoustics (1)
- Administration of drugs (1)
- Advance Carparking Systems (APS) (1)
- Advance parking meters (1)
- Advanced metering infrastructure (AMI) (5)
- Advertising (3)
- Air Conditioning (2)
- Air Insulated Metering Unit - AMU (1)
- Airport (2)
- AMRs (5)
- anaesthetic gas scavenging systems (AGSS) (1)
- Android (1)
- ANSI/CEA 709.1 (1)
- ANSI/ISA wireless standard (1)
- Apple (3)
- application bandwidth (1)
- Applications Domain (1)
- Arcnet (2)
- Asbestos (1)
- ASHRAE (2)
- ASHRAE 135-1995 (1)
- aspirating fire detection system (1)
- ATEX (1)
- Authorised Electricity Operator (AEO) (2)
- Automated Home initiative (TAHI) (1)
- Automatic monitoring and targeting (aM&T) (4)
- Automatic vehicle location (AVL) (1)
- automation wireless systems (1)
- AV displays (1)
- Aviation (2)
- BACnet (5)
- BACnet ARCNET (1)
- BACnet Ethernet (1)
- BACnet MS/TP (1)
- BACnet PTP (1)
- Balancing and Settlement Code (BSC) (1)
- Battery technology (2)
- batteryless switches (1)
- BEAMA (1)
- Bed status (1)
- bedhead services (1)
- BERR (2)
- Best practice (1)
- Billing And OSS Domain (1)
- BIM (building information modelling) (1)
- Biofuels (1)
- Biomass (4)
- Biometrics (3)
- Black Start (1)
- Blogs (1)
- Blu-ray video (4)
- Bluetooth (3)
- BNC (1)
- Braille (1)
- BRE (1)
- BREEAM (1)
- BREEAM Gulf (1)
- British Gas (2)
- British Standards (BSs) (1)
- Broadband internet (2)
- BS5839 (1)
- BUilding Control Bodies (BCBs) (1)
- Building Energy Efficiency Programme (BEEP) (1)
- Building Management System (BMS) (1)
- Building Management System Integrators (BMSi) (1)
- Building Performance Institute (1)
- Building regulations (3)
- Building Research Establishment (BRE) (1)
- Building services (1)
- building-automation systems (BAS) (1)
- Buildings (13)
- Business Intelligence and collaboration platform (1)
- Cameras - real time images (2)
- Canadian Standards Association (1)
- Car Park System (3)
- car technology (1)
- Carbon Capture and Storage (CCS) (3)
- Carbon Reduction Commitment (CRC) (3)
- Castell switching (6)
- Cat3 (1)
- Cat4 (1)
- cat5 (2)
- Cat5E (5)
- Cat6 (12)
- Cat6A (2)
- CCTV IR-illumination (1)
- CCTV Systems (1)
- CDMA devices (1)
- CEDIA (1)
- Changeable Message Signs (CMS) (1)
- Chief Fire Officers Association (1)
- CHP (1)
- Chrome (1)
- Chrome OS (2)
- Cisco (4)
- clean coal technology (CCT) (1)
- clean earth (1)
- Climate change (1)
- Climate Change Agreements (CCAs) (1)
- Climate Change Levy Exemption Certificate (LEC) (1)
- Climate control networks (1)
- Clinical report displays (1)
- Clinton Climate Initiative (CCI) (1)
- Close Proximity Signage (CPS) (1)
- Closed Circuit Television (CCTV) (5)
- Cloud Computing (1)
- Coarse Wavelength Division Multiplexing (CWDM) (1)
- Code for sustainable homes (1)
- Color Kinetics (1)
- colour rendering index (Ra) (1)
- commercial off-the-shelf (COTS) (1)
- Connection Agreement (1)
- Connection Charges (1)
- Connection Point (1)
- Construction (2)
- Construction workload (13)
- Consumers (1)
- contactless infrastructure (1)
- content encryption/decryption (1)
- Content management system (1)
- Content protection (1)
- Contestable Works (1)
- Control of Pollution (Oil Storage) (1)
- controls (1)
- converged IP core network (2)
- CoP1 (1)
- CoP10 (2)
- CoP2 (1)
- CoP3 (1)
- CoP5 (3)
- CUSC Bilateral Agreement (1)
- Customer (1)
- Customer Relationship Management [CRM] (1)
- customer satisfication (1)
- DAB (1)
- daily appointments (1)
- DALI (1)
- Dangerous Substances and Explosive Atmospheres Regulati (1)
- Dark Fiber (1)
- Dasboard (1)
- data carrying techniques (1)
- Data Centers (3)
- Data Centre Design (3)
- data centres (2)
- Data Protection Act (2)
- David Slade (4)
- Davmark (3)
- DeafBlind Communicator (DBC) (1)
- DECC (1)
- Department of Energy and Climate Change (2)
- Department of Health (1)
- design life cycle (1)
- desktop (1)
- Detailed Planning Data (DPD) (1)
- DH Estates and Facilities (1)
- Diesel (1)
- diesel or petroleum (1)
- Digital Radio (1)
- digital rights management (DRM) (1)
- digital signage (1)
- Digital Video Recorders (DVRs) (1)
- DigĀital Transition TV (2)
- direct digital control (DDC) (1)
- Display Energy Certificate (DEC) (1)
- Display Energy Certificates (DEC Certificates) (1)
- Displays (1)
- Distribution System (4)
- DLNA (Digital Network Living Alliance) (1)
- DMX (1)
- DNO (9)
- door-access systems (1)
- Double Skinned Tank (1)
- DTV (1)
- Duke Energy (1)
- duty of care (1)
- DVD (1)
- EA TS 133 (1)
- EA TS 41-24 (1)
- Earthing (1)
- Echelon (2)
- Eco-fund tariffs (1)
- ecommerce (1)
- EDC (Electronic Dispersion Compensation) (1)
- Edge-QAM subsystem (1)
- Education (4)
- EIKON (1)
- Electrical Equipment (Safety) Regulations (1)
- Electrical Equipment (Safety) Regulations 1994 (1)
- electrical supply (3)
- Electromagnetic compatibility (1)
- electronic article systems (EAS) (1)
- Electronic networks (1)
- electronic patient record (EPR) (2)
- embedded generator (2)
- EMC (1)
- Emissions Trading Scheme (1)
- Emissions Trading Scheme (ETS) (1)
- end-to-end (E2E) (1)
- Energy (10)
- energy controller (1)
- Energy efficiency commitment (EEC) (1)
- Energy harvesting (1)
- Energy Performance Certificates (EPC) (1)
- Energy Services Directive (1)
- ENERGY STAR (1)
- Energy Star program (1)
- Energywatch (1)
- Engineering (13)
- EnOcean Alliance (1)
- Eon (1)
- equal level far end crosstalk (ELFEXT) (1)
- equipotential earth (1)
- ERP (enterprise resource planning) (1)
- ESD flooring (1)
- ESTA (1)
- etailing (1)
- Ethernet (PoE) (1)
- EU Council (1)
- Eurocodes (1)
- European Emissions Trading System (EU-ETS) (1)
- European Smart Metering Industry Group (ESMIG) (1)
- European Union (1)
- Event (1)
- Export Meter (1)
- Export tariffs (1)
- Extended Environments Markup Language (EEML) (1)
- face geometry (1)
- Facilities strategy (1)
- facility management (1)
- fault level (1)
- fibre optic cabling (1)
- Fibre optic line drivers (1)
- Fibre Optic Standards (1)
- FibreAlert (1)
- Fingerprints (1)
- Fire alarm system - False Alarms (1)
- Fire detection (2)
- Fire performance test (1)
- Fire protection (2)
- Fire safety (4)
- Fire Safety Order 2005 (2)
- Fire Suppression (1)
- Firefox (1)
- fireman's lift (1)
- FITs - Feed-In Tariff (2)
- flexible screen (1)
- Footfall - people counting (1)
- Fuel oil (1)
- Furniture and Furnishings (Fire) (Safety) Regulations (1)
- G.hn (1)
- G54 (1)
- G59 (3)
- G74 (1)
- G75 (2)
- G83 (2)
- Galileo (1)
- Gas (3)
- gas distribution Network (2)
- gas distribution networks (GDNs) (1)
- Gas meters (4)
- Gas Safety (Installation and Use) Regulations 1998 (1)
- Gas smart metering (1)
- Gas suppliers (1)
- Gas Transporters (IGTs) (1)
- gateway (1)
- General (8)
- General Electric (1)
- Generation tariffs (1)
- Generator (4)
- Generator Star point Earthing (1)
- Genlyte group (1)
- Gigabit Interface Connector (GBIC) (1)
- Global Intelligent Utility Network (IUN) Coalition (1)
- Global Navigation Satellite System (GNSS) (1)
- global positioning system (GPS) (1)
- Global System for Mobile Communications (GSM) (1)
- Google (8)
- GPRS (1)
- Greater London Authority (1)
- Green buildings (7)
- Green Digital Charter (1)
- Ground source heat pumps (1)
- GUI (1)
- H&S (1)
- hand geometry (1)
- Hand scanners (1)
- Harmonics (1)
- hazardous explosive atmospheres (1)
- HDMI (4)
- HDTV (1)
- Head-end and head-end subsystems (1)
- health monitor systems (2)
- Healthcare (11)
- heating and ventilation control (1)
- High voltage distribution (1)
- Hochiki (1)
- Home Automation (8)
- Home automation network (HAN) (13)
- Home Energy Controller (HEC) (1)
- Home Entertainment Network (1)
- Home Information Packs (HIPs) (1)
- Home Office (1)
- Home Star (1)
- HomePlug Alliance (1)
- HomePNA (1)
- HomNet (3)
- hospital information system (HIS) (1)
- Host Bus Adapter (HBA) (1)
- Hotel Solutions (1)
- House in Multiple Occupation (HMO) (1)
- Housing (10)
- Housing Act 2004 (1)
- Housing Health and Safety Rating System (HHSRS) (1)
- HTML (HyperText Markup Language) (1)
- Human Rights Act (1)
- HV switchgear isolation (1)
- Hydroelectricity (1)
- IBM (5)
- ICT (1)
- IEC 555-2 (1)
- IEC61850 Ethernet-based services (1)
- IEEE 1473-L (1)
- IEEE 1621 (1)
- IEEE 802.15.4 (1)
- IEEE802.3 (1)
- IEEE802.3ae (1)
- IEEE802.3ak (1)
- IIT (19)
- in-home display (IHD) (1)
- Independent Distribution Network Operator (IDNO) (3)
- Information Commissioner (1)
- information-technology (IT) (3)
- Innovation (1)
- Integrated Access Device (IAD) (1)
- Integrated Metering System (2)
- Integration (16)
- Intel (1)
- Intelligent building (13)
- Intelligent Car Park System (2)
- Intelligent network (2)
- Intelligent transport systems (ITS) (1)
- internet fridge (2)
- internet oven (1)
- Internet video-on-demand service (2)
- internet washing machine (1)
- Internet-based television technology (2)
- intertripping (1)
- Intranet platform (1)
- Introduction (4)
- IP (Internet Protocol) (2)
- IP packet (1)
- IP Ratings (Ingress Protection) (1)
- IP video (1)
- IP-surveillance (1)
- IP/MPLS layer (1)
- iPhone (1)
- iPhone Apps (2)
- IPTV (3)
- IPv6 (1)
- iris patterns (1)
- ISA-100.11a (1)
- Island mode (1)
- islanding (1)
- ISO-16484-5 (1)
- IT (3)
- IT - Streaming (1)
- IT Network (power over Ethernet) (2)
- IT Tech explained (8)
- ITU-T G.9954 (1)
- Key Performance indicators (1)
- KNX EIB (1)
- LAN (1)
- LCD display (1)
- leak detection (1)
- LED Lighting (4)
- LEED (2)
- LG (1)
- LG Group (2)
- licensed premises (1)
- life cycle cost analysis (LCCA) (1)
- lifecycle (1)
- Lifetime freedom homes (4)
- Lifetime homes (2)
- Lighting (4)
- Lighting - Street (2)
- Lighting control (4)
- Lighting pollution (1)
- Linkedin (2)
- LinkLoss (1)
- Local authority powers (1)
- LonTalk (1)
- Lonworks (9)
- Loss Prevention Research Council (1)
- loudspeakers (1)
- Low Carbon Buildings Programme (1)
- Lumileds (1)
- m-commerce (1)
- Mac OS X (1)
- Marketing (6)
- Meal selection (1)
- Media Access Control (MAC) (1)
- Media Converter (1)
- Medical Devices Directives (1)
- Medical gas pipeline system (MGPS) (1)
- Medication requirements (1)
- MEIGaN - Medical Electrical Installation (2)
- metadata (1)
- Metal Core PCB (MCPCB) (1)
- Meter Operator (MOP) (1)
- metering (26)
- metering - Remote display (2)
- metropolitan area network (MAN) (1)
- MHRA (1)
- Micro CHP (2)
- micro-generation (2)
- microgeneration (1)
- Microgeneration Certification Scheme (MCS) (2)
- Microsoft (1)
- microwave (1)
- mission-critical (1)
- mobile phone (1)
- Modbus (1)
- Modbus/TCP (1)
- Motorola (1)
- Mozilla (1)
- MPAN (3)
- MPO cables (1)
- MPRN (Gas Meter Point Reference Number (2)
- MRI (1)
- Multi-Source Agreements (MSAs) (1)
- multi-touch application (1)
- Multilevel Discipline (1)
- Multiple earths (1)
- Multiple Terminations Push-Pull Latch (1)
- multiroom audio video (MRAV) (1)
- music (2)
- NAT (Network Address Translation) (1)
- NDO's (3)
- near end crosstalk (NEXT) (1)
- Near Field Communication (1)
- Network Infrastructure Domain (1)
- Network Integrator (1)
- Network Interface Cards (NIC) (1)
- Network Switch Cooling Solution (1)
- Networked Energy Services (NES) System (3)
- Nintendo (1)
- Node controller (1)
- Non Half Hourly (NHH) (1)
- Non-Contestable Works (1)
- Nonlinear loads (1)
- nurse-call (2)
- ODBC connections (1)
- Ofcom (2)
- Office of Government Commerce (OGC) (1)
- Ofgem (7)
- OLED (1)
- OLEDS (1)
- online shopping (1)
- Open Data Centre Alliance (1)
- OpenRF (1)
- operations support systems (OSS) (1)
- Optical Media Converters (1)
- Organic Recycling (1)
- Outdoor Spaces (1)
- oven (1)
- Oxy reduction system (1)
- P2/5 (1)
- P2/6 security (1)
- P28 (1)
- P29 (1)
- Pachube (1)
- Paknet (radio system) (1)
- Panasonic (1)
- parallel operation (1)
- Parking Guidance and Information (PGI) systems (1)
- Patient details (1)
- Patient entertainment (1)
- Patient monitoring (1)
- Patient's calling devices (1)
- PCI bus (1)
- Permit Scheme Operators (1)
- Philips (1)
- phosphorescent organic light-emitting diode (PHOLED) (1)
- Photovoltaic (PV) (5)
- Photovoltaics (3)
- PlayStation (1)
- point of common coupling (PCC) (1)
- point-of-sale (POS) (1)
- Power Distribution Units (PDUs) (1)
- Power line Carrier (PLC) (1)
- power outage (1)
- Power over Ethernet (PoE) (1)
- powerline (1)
- Project management (1)
- Proprietary Tank Systems (1)
- protection relays (1)
- protective earth (PE) (1)
- protective earth and neutral (PEN) (1)
- Public buildings (1)
- quality of service (QoS) (1)
- racks (1)
- Radio Frequency Identification (RFID) (1)
- radio frequency interference (RFI) (1)
- radiology information system (RIS) (1)
- Raised Floor Systems (1)
- Raised Floors (2)
- Rare earth minerals (1)
- real estate management (2)
- real-time (1)
- Real-time Location System (RTLS) (1)
- Realtime SMS (1)
- Reform (Fire Safety) Order 2005 (1)
- Regulatory Reform (Fire Safety) Order (2)
- Regulatory Reform (Fire Safety) Order 2005 (1)
- Remote access servers (RASs) (1)
- Remote Control (1)
- Remote Patient Monitoring (1)
- Remote Phosphor Technology (RPT) (1)
- Renewable energy (18)
- Renewable Energy Certificate (REC) (2)
- Renewable Energy Guarantee of Origin (REGO) (4)
- Renewable Obligation Certificates (ROC) (4)
- Renewable power (12)
- Renewable tariffs (6)
- residential (1)
- residential gateway (RG) (1)
- resiliency (1)
- Retail Price Index (RPI) (1)
- Retail solutions (2)
- Retrofit for Energy and Environmental Performance (REEP (1)
- Ring Main Unit - RMU's (1)
- RJ45 (1)
- RoHS (1)
- ROI (1)
- Royal and Sun Alliance (RSA) Insurance Group (1)
- RS-485 (1)
- S34 (1)
- Sales (1)
- Samsung (2)
- SCADA applications (1)
- Scotia Gas Networks (1)
- SEAIIT (1)
- section 20 building (2)
- Section 20 buildings (1)
- SecureMesh (1)
- security (3)
- Security networks (1)
- SERDES (1)
- Service Life Plan (1)
- Set Price Tariffs (1)
- set-top box (STB) (1)
- SharePoint (1)
- shielded twisted pair cable (STP) (1)
- Siemens (1)
- Signage (1)
- Small Form Factor Pluggable (SFP) (1)
- Small Scale Embedded Generator (SSEG) (3)
- Smart Buildings (2)
- Smart gas meters (2)
- Smart Grid Maturity Model (3)
- Smart Grid Technology (15)
- Smart homes (12)
- smart meters (22)
- Smart water meters (1)
- smoke extraction (1)
- SMS (2)
- Software (1)
- Solar PV (4)
- solution integration (SI) (2)
- Sony (1)
- Sound (1)
- Speech recognition (1)
- sprinkler (1)
- Sprinklers (1)
- Staff communications base (1)
- Staff-to-staff (emergency) (1)
- Standard Network Variable Type - SNVT (1)
- structural design (1)
- Subscriber Domain (1)
- substation automation (1)
- Substations (1)
- Sun Microsystems (1)
- Suspended Ceilings (1)
- Sustainability (7)
- Sustainable and Secure Buildings Act (1)
- SwitchAir (1)
- switchgear (2)
- System Frequency (1)
- System intergration (7)
- T1 or E1 communication lines (1)
- TDM-based protocols (1)
- Telecommunication Standardisation Bureau ITU (1)
- telecommunications (1)
- Telecommunications Industry Association (TIA) (1)
- thermostat (1)
- Thicknet (1)
- ThinNet (1)
- third harmonics (1)
- Third sector (1)
- Tidal renewable energy (1)
- Time Division Multiple Access (TDMA) (1)
- Time Synchronized Mesh Protocol (TSMP) (1)
- TiVo (2)
- TN-C (1)
- toilets (1)
- Total Generation Meter (1)
- touchless controls (1)
- Touchscreen (1)
- Touchscreen technology (2)
- Traffic Management Act (1)
- Transformer protection (1)
- Transformers - Dry (1)
- Transformers - Liquid filled (2)
- Transport and access networks (1)
- Tripping (1)
- Twitter (4)
- U.S. Environmental Protection Agency (1)
- un-lit fiber (1)
- Uncategorized (9)
- Uninterrupted Power Supply (UPS) (1)
- Universal Integrated Card (UICC) (1)
- Universal Powerline Bus (UPB) (1)
- UPnP (Universal Plug and Play) (1)
- UPS (1)
- USB (1)
- variable message signs (VMS) (1)
- venting system (1)
- video game consoles (1)
- Video on demand (VOD) (1)
- Video services middleware platform (1)
- video-on-demand (1)
- Virgin Media (2)
- virtualized network (1)
- Vodafone (1)
- Voice-Activated Controls (2)
- VoIP (3)
- Voltage Rise / Step Change (1)
- VPN (1)
- Wake On LAN (1)
- WAN (wide area network) (2)
- WAN PHY (1)
- washing machine (1)
- Water meter (2)
- water mist system (1)
- Wave (1)
- Wavelength Division Multiplexing (WDM) (1)
- Weatherproof LCD TV (1)
- Web 2.0 (3)
- Web-accessible control system (WACS) (2)
- Wi-Fi (6)
- wide area network (WAN) (1)
- Wii (1)
- Wind energy (8)
- Windows 8 (1)
- wireless communications (2)
- Wireless Gigabit (WiGig) Alliance (2)
- Wireless HD (1)
- Wireless sensor networks (WSNs) (2)
- Wireless USB (1)
- Wood-based Bio Fuels (1)
- X2 (1)
- Xbox (1)
- XENPAK (1)
- XFP (1)
- XML (extensible markup language) (2)
- xoserve (1)
- XPAK (1)
- Yardi (1)
- YouTube (1)
- Z-Wave (3)
- Zhaga LED standard (1)
- ZigBee (14)
- zone controllers (1)
- 30/03/2012: Asbestos Regulations - UK
- 10/11/2011: Distributed Smart data centres - working sun set to sun rise!
- 21/06/2011: Microsoft's next-gen OS - Windows 8
- 21/06/2011: Google - Chrome
- 21/06/2011: Mozilla - Firefox 5
- 13/01/2011: Samsung to invest in IBM chip research for mobile, other devices
- 04/01/2011: Online shoppers don't like "dynamic" pricing, report says
- 04/01/2011: 3D Blu-ray discs enter new year with some catching up to do
- 03/01/2011: China cuts rare earth exports
- 23/12/2010: SEAIIT Unleashed
Archive for the real-time Category
Taking the guesswork out of timing in real-time software systems
09/06/2009 by David Slade.
A new technique, static timing analysis, based on a deterministic processor architecture, is described in this article and will be shown to be capable of taking the guesswork out of timing in real-time software systems.
Guaranteeing correct operation of real-time software running on an embedded processor is a significant challenge. Data dependent execution flows, where execution times of many functions are dependent on the data inputs, mean that instruction sequences are very difficult to accurately time.To handle the problem so far, the test bench has been relied upon to adequately exercise the timing corner cases of each individual function. In complex systems this often means developing much of the rest of the application before suitable stimulus can be created. This adds significant effort and delay to certifying software system timing.
New processor architectures, capable of exhibiting deterministic instruction timing, open up interesting possibilities for the future. A new technique, static timing analysis, based on a deterministic processor architecture, is described in this article and will be shown to be capable of taking the guesswork out of timing in real-time software systems.
In short, a static timing tool will analyse object code and determine worst-case timing paths. Paths are analysed between two points interactively or against timing assertions in batch mode to produce a pass or fail result. This information allows the designer to optimise timing critical sections of their code until correct timing closure is achieved.
The article will show how this approach can be successfully used to develop a software implementation of a 100Mbps Ethernet MII interface.
Closing timing in real-time systems
As processor architectures improve in speed and responsiveness, it becomes increasingly attractive to perform functions traditionally implemented in hardware, using software. A simple example such as an IIC master has always been a good candidate for this approach because the master defines the timing. However, an IIC slave must always be ready to respond within a certain time. This imposes timing constraints on the software. Developing interface functions in software thus becomes a real-time programming challenge.
Verifying software functionality is a well practiced task using software test benches. Closing timing may require a significant amount of additional effort on top of authoring the code. The standard approaches to closing timing are limited. Typical approaches include testing in circuit whilst observing pin activity, simulating the software using a cycle accurate simulator or counting the instructions for the path of interest to determine the expected execution time.
All approaches share a common requirement; that is to provide suitable stimulus to fully exercise the software under test ensuring that corner cases are adequately covered. This increases the verification effort due to extending the test bench to include timing. In many cases, obtaining suitable stimuli may not be possible until much later on in the project when the rest of the system is available to generate it. Static timing analysis removes this dependency by formally exercising all paths within the code and allows timing closure of each software function individually.
he Ethernet MII interface is a good example of where it is advantageous to use interface functions developed in software. Replacing the MAC layer with software allows early adoption of new hardware standards and allows custom protocols to be implemented. The timing diagram of the MII interface between the MAC and PHY layers is shown below in figure 1.

Figure 1: Ethernet MII timing diagram.
The source code to manage the MAC / PHY interface is shown below. It is written in XC which has support for direct control of physical pins through port inputs (:>) and outputs (<:). XC also has support for simultaneously managing multiple ports using the select statement. The select statement is like a switch statement done by the hardware. In this case the pins have been mapped to the port_rxd and port_rx_dv ports and the data port (port_rxd) has been configured to convert the stream of data nibbles coming from the PHY into a series of words. The timing pragmas that instruct the static timing analysis tool are also included in the source code.
Before the receiver starts it ensures that the RX_DV signal is low. Then it looks for the start of packet identified by RX_DV going high and the SFD (Start Frame Delimiter) being received. The inner loop simultaneously waits for data words and the RX_DV going low. When RX_DV goes low the code processes any remaining data nibbles and checks for errors before starting to receive the next packet.

The software managing this interface must not only be functionally correct but also timing-safe as failing to meet timing is equally critical. The timing constraints are in the loop receiving data words (T1) and the inter-frame gap (T2 - data valid going low to detecting the next SFD). For 100Mbs Ethernet a word of data is received every 320ns. The inter-frame gap is a minimum of 96 bit times, and the preamble is 56 bit times. Hence the inter-frame code must complete in 1520ns.
The challenge is in guaranteeing the code is timing-safe. There is only one valid path through the function for receiving data, but the inter-frame code has a number of paths to handle different packet sizes and error cases. Each of these must be functionally correct as well as meet timing.
Manually ensuring that all paths meet the constraints is time consuming, especially since it must be repeated every time the code is modified or re-compiled.
The aim of the approach is to automate the task of verifying that software meets timing constraints and to reduce the risk involved with checking timing constraints. Given a deterministic architecture on which to run the software it becomes possible to ensure that worst-case execution time is fast enough to meet the constraints.
The user starts by identifying the path end points in the code which they are timing. The MII source code shows how pragmas have been used to specify these end points. A combination of compiler, simulation and search techniques are used to ensure that all valid paths through a program are evaluated. Only paths explicitly excluded by the user will be ignored, these are known as false paths.
The interactive GUI or console illustrated in figure 2 can be used to visualise the execution paths through the code and identify which are false paths. In the MII code the first timing constraint runs from the word_receive label round the loop back to itself.

Figure 2: Static timing analysis tool GUI image
Two potential paths are found, the tight inner loop and a path which leaves the inner loop and goes through the code waiting for the next SFD. The second timing constraint, the inter-frame gap, runs from the rx_dv_low to wait_for_sfd. The tool finds all possible paths of execution between these two points, including false paths which pass through the word receive loop. With this information the user can create a script to run after every compilation which guarantees that the code meets the timing constraints.
In the case of the MII code the script would look like:

The assertions check the slack or violation for all possible paths of execution which have not been excluded and report the worst-case. For the MII case the output is:

The tool can be used for more than batch pass/fail testing. Code can be analysed using both the GUI and console. Structural code views highlight timing hot-spots. Instruction-level views and traces highlight hardware resource contention. This information is especially useful in allowing the user to concentrate their optimisation efforts where they will have the greatest impact.
In some cases the tool is unable to time code without additional information from the user. Execution flow which is data-dependent, like an unknown loop count, needs the user to specify worst-case values in order to perform timing analysis. These unknowns are highlighted to the user and can be specified through the GUI or console.
The tool works with binary executable files. There are two reasons for this. Firstly, it ensures the accuracy of the timing analysis. Secondly, it makes it language-independent, supporting code generated from any compiled source, be it assembly, C, C++ or XC. The user is able to work at the level of source code wherever debug information is available and can always work at the level of machine instructions.
The case study has shown how a practical real-time software implementation has been proved to be timing-safe through the use of a static timing analysis tool. Whilst this is the main goal of such a tool, the technology opens up further possibilities.
XC includes direct support for timed input/output operations. This means it is possible for the tool to identify these instructions and automatically generate the appropriate timing constraints. For example, the code between two timed inputs can automatically be verified as timing-safe by the tool.
The ability to generate a pass/fail result on timing-safe code enables the toolchain to close the loop. From a suitable report file, the compiler is able to determine where optimisation is needed and apply appropriate heuristics in an iterative manner to help close timing, without any effort from the designer.
The static timing tool identifies all paths through the code, including the worst case. By analysing the data that causes the worst-case timing, it is possible to reverse engineer the stimulus that caused this case. The worst-case test stimulus can then be added to the test bench used at a later stage, such as when testing in hardware. This gives the designer confidence that the test stimulus really does cover the corner cases.
One final interesting possibility is for power optimisation. Power consumption is closely matched to instruction execution, particularly for event driven processors that can enter a low power state when busy waiting. Analysis and optimisation of timing paths between pausing instructions allows the energy consumed per loop iteration to be determined and consequently reduced through optimisation. Saving power is always desirable and has commercial benefits which ripple through the rest of the system.
Designing real-time software capable of performing hardware functions is an attractive prospect however the flow has so far been missing a comprehensive tool to certify timing. With the introduction of static timing analysis, it is now possible to guarantee the execution time of real-time software running on a deterministic processor.
Static timing analysis also brings the advantage that timing closure of individual functions can be achieved well in advance of a full test bench or the rest of the system being available. By using formal analysis of the code, the static timing analyser exhaustively analyses all paths ensuring that no corner cases are missed. Adding timing assertions to the source code using #pragma statement means that the source code not only describes the functionality, but also defines the required timing. This allows the code to not only be portable across suitable architectures, but also timing-safe.
Static timing analysis takes the guesswork out of timing real-time software systems.
Accurate instruction timing predictions are fundamental requirement for a static timing analysis tool. There are many reasons why a sequence of instructions may not always take the same time to execute.
Interrupts by nature alter the execution flow dramatically by forcing a change of the CPU context for an amount of time. Further, all RTOSs have critical sections of code where interrupts are disabled. This means only one task can truly be real-time in a single threaded system and this is likely to be the scheduler in systems utilising an RTOS.
Architectures that include a memory hierarchy and cache memory in particular are known to exhibit less predictable execution times. The previous contents of the cache very strongly influence timing unless cache lines can be locked.
Resource conflict also can also increase execution time. Being denied a hardware resource will naturally block execution and adversely affect timing.
By avoiding these architectural issues, and employing simple round-robin scheduling, event driven, hardware multi-threaded processors provide highly predictable worst case execution timing. Further, the ability to pre-load output ports with a valid time allows execution to continue whilst the port autonomously handles the timed output.
Only data dependent execution flow may impede accurate timing prediction for event driven, hardware multi-threaded processors. A static timing tool is able to determine all possible paths through the software, allowing for the variability due to data dependencies and allowing timing guarantees to be made.
Posted in real-time | No Comments »