Saturday, May 25th

Last update08:28:22 PM

    English Chinese (Simplified) French German Hindi Italian Japanese Korean Portuguese Russian Slovenian Spanish

Font Size

Screen

Profile

Layout

Direction

Menu Style

Cpanel
  • Electronic System Level (ESL) design using FPGA

    Sunday, 13 February 2011 12:59
  • What's Handel-C?

    Thursday, 24 February 2011 15:28
  • What's the difference between Handel-C and Verilog?

    Thursday, 24 February 2011 15:47
  • Memory component selection guide for FPGA board design

    Friday, 18 March 2011 11:57
Wednesday, 02 March 2011 16:45

Sequential Logic & Combinational Logic

Sequential logic

Sequential logic blocks generate the flip-flops in a design. There should be no other logic generated inside the sequential block. No delays should ever be coded into synthesizable logic, including the sequential logic block. The sequential block is always coded with nonblocking statements. There should never be any blocking statements.

The sequential block is an always block with the clock (and possibly an asynchronous reset) in the sensitivity list. The flip-flops are defined as shown using variable names: name_ff, name_nxt, possibly name_meta and name_sync, or possibly an input port. Flip-flops can be set or cleared with the asynchronous reset. They should not be initialized if not required.

Thursday, 22 September 2011 21:06

Qt Creator bug: layout cannot be resized

Qt Creator 2.2.0 has a bug that I cannot drag to resize the layout

The solution is to use Qt Designer instead, which is also included in the installation. It can be invoked by executing "designer" in the qt command line.

Thursday, 22 September 2011 23:30

SHADING notes

01I don't use Symbols.py, but I use a more manageable and extensible XML file to manage repository.

02This is a sample block Dropcap.

03This is a sample block Dropcap.

 

Saturday, 12 March 2011 00:02

Linux on Xilinx Virtex 6 MicroBlaze

In order to make this tutorial more general, I will not focus on official supported Xilinx or Avnet FPGA development boards, but a third party board instead. It's well known that EDK is a great tool for the supported boards which you just click through, but a nightmare for third party boards. In this tutorial, I will show you how to make EDK work smothly with non-supported FPGA boards.

Before start, we need to decide which bus to use, PLB or AXI. PLB bus has become deprecated, it supports up to the current Virtex6/Spartan6, but will be replaced by AXI bus for newer generation --- Virtex 7. If what you are doing is a new design, I suggest to build your system on AXI for easier upgrade in the future, for existing system, you may just stick with PLB bus. Unfrotuantely, when I start to write this tutorial, Xilinx EDK 13.1 doesn't provide Virtex 6 HX series with AXI bus support. Therefore, I have to use the PLB bus for the time being. I think Xilinx will update EDK to support AXI bus on the Virtex 6 HX series. A new tutorial for AXI bus might be written later.

Thursday, 24 March 2011 01:23

Blocking v.s. Non-blocking Assignment

Introduction

This article is written with the target to eliminate new learner's most frequent questions: what's the difference between blocking assignment and non-blocking assignment?

Blocking Assignment

Blocking Assignment
always @(posedge clk) 
 begin
 a = in;
 b = a;
 out = b;
 end
 
Page 1 of 3
You are here: Home