summaryrefslogtreecommitdiffstats
path: root/content/zettel/5a2a.md
blob: 839eca09e77a7b03c52bd4813223b4547b9f1084 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
+++
title = "The global valid signal"
author = "Yann Herklotz"
tags = []
categories = []
backlinks = ["5a2"]
forwardlinks = ["5a2b"]
zettelid = "5a2a"
+++

This is the simplest way to design pipelined hardware, and can be useful
for one important scenario, when the rate of the input data is constant.
This allows the enable signal to be asserted at the rate at which new
data will enter the pipeline, therefore advancing the data to the next
stage. The logic for a pipeline stage using a global enable looks
something like the following:

``` verilog
always @(posedge clk) if (CE) out <= $compute(in);
```

One main use-case of such an application is DSP, as signals will come in
and exit a the rate that the ADC or DAC is sampling at.