Task And Function part 2
Thứ năm, 09 Tháng 9 2021 13:31
Semicon Editor 01
Function A Verilog HDL function is the same as a task, with very little differences, like function cannot drive more than one output, can not contain delays.
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 00:58 )
Đọc thêm...
Task And Function part 1
Thứ ba, 07 Tháng 9 2021 13:51
Semicon Editor 01
Task Tasks are used in all programming languages, generally known as procedures or subroutines. The lines of code are enclosed in task....end task brackets.
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 00:58 )
Đọc thêm...
Verilog Operators Part-II
Thứ ba, 07 Tháng 9 2021 13:43
Semicon Editor 01
Reduction Operators
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 00:59 )
Đọc thêm...
Verilog Operators Part 1
Thứ ba, 07 Tháng 9 2021 13:30
Semicon Editor 01
Arithmetic Operators Binary: +, -, *, /, % (the modulus operator) Unary: +, - (This is used to specify the sign)
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 00:59 )
Đọc thêm...
User Defined Primitives Part-III
Thứ bảy, 04 Tháng 9 2021 13:35
Semicon Editor 01
Level Sensitive Sequential UDP Level-sensitive sequential behavior is represented in the same way as combinational behavior, except that the output is declared to be of type reg, and there is an additional field in each table entry. This new field represents the current state of the UDP.
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 00:59 )
Đọc thêm...
User Defined Primitives Part-II
Thứ bảy, 04 Tháng 9 2021 13:21
Semicon Editor 01
Combinational UDPs In combinational UDPs, the output is determined as a function of the current input. Whenever an input changes value, the UDP is evaluated and one of the state table rows is matched.
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 00:59 )
Đọc thêm...
User Defined Primitives Part-I
Thứ bảy, 04 Tháng 9 2021 13:05
Semicon Editor 01
Introduction Verilog has built-in primitives like gates, transmission gates, and switches. This is a rather small number of primitives; if we need more complex primitives, then Verilog provides UDP,
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 00:59 )
Đọc thêm...
My first program in Verilog
Thứ ba, 31 Tháng 8 2021 15:23
Semicon Editor 01
Introduction If you refer to any book on programming languages, it starts with an "Hello World" program; once you have written it, you can be sure that you can do something in that language
Lần cập nhật cuối ( Thứ ba, 31 Tháng 8 2021 15:34 )
Đọc thêm...
Art of Writing TestBenches Part - II
Thứ ba, 31 Tháng 8 2021 15:16
Semicon Editor 01
Writing a TestBench First step of any testbench creation is building a dummy template which basically declares inputs to DUT as reg and outputs from DUT as wire, then instantiates the DUT as shown in the code below.
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 01:00 )
Đọc thêm...
Art of Writing TestBenches Part - I
Thứ ba, 31 Tháng 8 2021 15:02
Semicon Editor 01
Introduction Writing a testbench is as complex as writing the RTL code itself. These days ASICs are getting more and more complex and thus verifying these complex ASIC has become a challenge. Typically 60-70% of time needed for any ASIC is spent on verification/validation/testing.
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 01:00 )
Đọc thêm...
System Task and Function
Chủ nhật, 29 Tháng 8 2021 14:06
Semicon Editor 01
Introduction There are tasks and functions that are used to generate input and output during simulation. Their names begin with a dollar sign ($). The synthesis tools parse and ignore system functions, and hence can be included even in synthesizable models.
Lần cập nhật cuối ( Chủ nhật, 29 Tháng 8 2021 14:12 )
Đọc thêm...
Compiler Directives
Chủ nhật, 29 Tháng 8 2021 13:56
Semicon Editor 01
Introduction A compiler directive may be used to control the compilation of a Verilog description. The grave accent mark, `, denotes a compiler directive.
Lần cập nhật cuối ( Chủ nhật, 29 Tháng 8 2021 14:01 )
Đọc thêm...
Modeling Memories And FSM Part - II
Chủ nhật, 29 Tháng 8 2021 13:43
Semicon Editor 01
Introduction to FSM State machines or FSM are the heart of any digital design; of course a counter is a simple form of FSM. When I was learning Verilog, I used to wonder "How do I code FSM in Verilog" | and "What is the best way to code it". I will try to answer the first part of the question below and second part of the question can be found in the tidbits section. State machine Types There are two types of state machines as classified by the types of outputs generated from each. The first is the Moore State Machine where the outputs are only a function of the present state, the second is the Mealy State Machine where one or more of the outputs are a function of the present state and one or more of the inputs. Moore Model State machines can also be classified according to the state encoding used. Encoding style is also a critical factor which decides speed and gate complexity of the FSM. Binary, gray, one hot, one cold, and almost one hot are the different types of encoding styles used in coding FSM states. Modeling State machines. One thing that need to be kept in mind when coding FSM is that combinational logic and sequence logic should be in two different always blocks. In the above two figures, next state logic is always the combinational logic. State Registers and Output logic are sequential logic. It is very important that any asynchronous signal to the next state logic be synchronized before being fed to the FSM. Always try to keep FSM in a separate Verilog file. Using constants declaration like parameter or `define to define states of the FSM makes code more readable and easy to manage. We will be using the arbiter FSM to study FSM coding styles in Verilog Verilog Code FSM code should have three sections: | - Encoding style.
- Combinational part.
- Sequential part.
There are many encoding styles around, some of which are: - Binary Encoding
- One Hot Encoding
- One Cold Encoding
- Almost One Hot Encoding
- Almost One Cold Encoding
- Gray Encoding
Of all the above types we normally use one hot and binary encoding. One Hot Encoding | 1 parameter [4:0] IDLE = 5'b0_0001; 2 parameter [4:0] GNT0 = 5'b0_0010; 3 parameter [4:0] GNT1 = 5'b0_0100; 4 parameter [4:0] GNT2 = 5'b0_1000; 5 parameter [4:0] GNT3 = 5'b1_0000; | Binary Encoding | 1 parameter [2:0] IDLE = 3'b000; 2 parameter [2:0] GNT0 = 3'b001; 3 parameter [2:0] GNT1 = 3'b010; 4 parameter [2:0] GNT2 = 3'b011; 5 parameter [2:0] GNT3 = 3'b100; | Gray Encoding | 1 parameter [2:0] IDLE = 3'b000; 2 parameter [2:0] GNT0 = 3'b001; 3 parameter [2:0] GNT1 = 3'b011; 4 parameter [2:0] GNT2 = 3'b010; 5 parameter [2:0] GNT3 = 3'b110; | Bạn Có Đam Mê Với Vi Mạch hay Nhúng - Bạn Muốn Trau Dồi Thêm Kĩ Năng Mong Muốn Có Thêm Cơ Hội Trong Công Việc Và Trở Thành Một Người Có Giá Trị Hơn Bạn Chưa Biết Phương Thức Nào Nhanh Chóng Để Đạt Được ChúngHãy Để Chúng Tôi Hỗ Trợ Cho Bạn. SEMICON
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 01:00 )
Modeling Memories And FSM Part - I
Thứ bảy, 28 Tháng 8 2021 15:00
Semicon Editor 01
Memory Modeling To help modeling of memory, Verilog provides support for two dimensions arrays. Behavioral models of memories are modeled by declaring an array of register variables; any word in the array may be accessed using an index into the array. A temporary variable is required to access a discrete bit within the array.
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 01:00 )
Đọc thêm...
Verilog Quick Reference part 2
Thứ bảy, 28 Tháng 8 2021 14:51
Semicon Editor 01
SYSTEM TASKSbut mentioned in the informative appendix. INPUT
Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 01:01 )
Đọc thêm...
|
|