Skip to content

Commit d2190b5

Browse files
Gabriel UrsGabriel Urs
authored andcommitted
LOGIC-1044: Added 4-bit counters and readme
1 parent 6afb94d commit d2190b5

35 files changed

+211
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"class":"GraphLinksModel","linkKeyProperty":"key","linkFromPortIdProperty":"fromPort","linkToPortIdProperty":"toPort","nodeDataArray":[{"category":"dffer","loc":"-30 -220","key":1},{"category":"xor","loc":"-150 -230","key":2},{"category":"xor","loc":"-150 40","key":3},{"category":"dffer","loc":"-30 50","key":4},{"category":"xor","loc":"-150 320","key":5},{"category":"dffer","loc":"-30 330","key":6},{"category":"xor","loc":"-140 600","key":7},{"category":"dffer","loc":"-20 610","key":8},{"category":"and","loc":"-320 -80","key":9,"angle":90,"flipX":false},{"category":"and","loc":"-300 210","key":11,"angle":90,"flipX":false},{"category":"and","loc":"-280 470","key":12,"angle":90,"flipX":false},{"category":"and","loc":"-520 430","key":14},{"category":"not","loc":"-620 450","key":15},{"category":"dff","loc":"-700 470","key":16},{"category":"moduleoutputport","portname":"Bit0","size":"130 20","loc":"130 -230","key":10,"inputmodifier":"synchronized"},{"category":"moduleoutputport","portname":"Bit1","size":"130 20","loc":"120 40","key":13,"inputmodifier":"synchronized"},{"category":"moduleoutputport","portname":"Bit2","size":"130 20","loc":"120 320","key":17,"inputmodifier":"synchronized"},{"category":"moduleoutputport","portname":"Bit3","size":"130 20","loc":"130 600","key":18,"inputmodifier":"synchronized"},{"category":"moduleinputport","portname":"Reset","size":"130 20","loc":"-660 -20","key":19,"inputmodifier":"synchronized"},{"category":"moduleinputport","portname":"Enable","size":"130 20","loc":"-660 -210","key":20,"inputmodifier":"synchronized"},{"category":"moduleinputport","portname":"Clock","size":"130 20","loc":"-830 450","key":21,"inputmodifier":"synchronized"}],"linkDataArray":[{"from":2,"to":1,"fromPort":"OUT","toPort":"D","key":-1,"points":[-90,-230,-80,-230,-80,-230,-90,-230,-90,-230,-80,-230]},{"from":3,"to":4,"fromPort":"OUT","toPort":"D","key":-2,"points":[-90,40,-80,40,-80,40,-90,40,-90,40,-80,40]},{"from":5,"to":6,"fromPort":"OUT","toPort":"D","key":-3,"points":[-90,320,-80,320,-80,320,-90,320,-90,320,-80,320]},{"from":7,"to":8,"fromPort":"OUT","toPort":"D","key":-4,"points":[-80,600,-70,600,-70,600,-80,600,-80,600,-70,600]},{"from":1,"to":2,"fromPort":"OUT","toPort":"IN1","key":-7,"points":[20,-230,30,-230,30,-280,-220,-280,-220,-250,-210,-250],"routing":"Orthogonal"},{"from":1,"to":9,"fromPort":"OUT","toPort":"IN1","key":-8,"points":[20,-230,30,-230,30,-230,30,-280,-140,-280,-140,-280,-300,-280,-300,-150,-300,-140],"routing":"Orthogonal"},{"from":9,"to":11,"fromPort":"OUT","toPort":"IN2","key":-9,"points":[-320,-20,-320,-10,-320,65,-320,65,-320,140,-320,150]},{"from":9,"to":3,"fromPort":"OUT","toPort":"IN2","key":-10,"points":[-320,-20,-320,-10,-320,60,-220,60,-220,60,-210,60],"routing":"Orthogonal"},{"from":4,"to":11,"fromPort":"OUT","toPort":"IN1","key":-11,"points":[20,40,30,40,30,40,30,-10,-280,-10,-280,140,-280,150],"routing":"Orthogonal"},{"from":4,"to":3,"fromPort":"OUT","toPort":"IN1","key":-12,"points":[20,40,30,40,30,-10,-220,-10,-220,20,-210,20],"routing":"Orthogonal"},{"from":11,"to":12,"fromPort":"OUT","toPort":"IN2","key":-13,"points":[-300,270,-300,280,-300,335,-300,335,-300,400,-300,410]},{"from":11,"to":5,"fromPort":"OUT","toPort":"IN2","key":-14,"points":[-300,270,-300,280,-300,340,-220,340,-220,340,-210,340],"routing":"Orthogonal"},{"from":6,"to":12,"fromPort":"OUT","toPort":"IN1","key":-15,"points":[20,320,30,320,30,320,30,270,-260,270,-260,400,-260,410],"routing":"Orthogonal"},{"from":6,"to":5,"fromPort":"OUT","toPort":"IN1","key":-16,"points":[20,320,30,320,30,320,30,270,-210,270,-210,300,-220,300,-210,300],"routing":"Orthogonal"},{"from":12,"to":7,"fromPort":"OUT","toPort":"IN2","key":-17,"points":[-280,530,-280,540,-280,620,-210,620,-210,620,-200,620]},{"from":8,"to":7,"fromPort":"OUT","toPort":"IN1","key":-18,"points":[30,600,40,600,44,600,44,548,-212,548,-212,580,-210,580,-200,580]},{"from":15,"to":14,"fromPort":"OUT","toPort":"IN2","key":-48,"points":[-579,450,-569,450,-569,450,-590,450,-590,450,-580,450]},{"from":16,"to":15,"fromPort":"OUT","toPort":"IN1","key":-47,"points":[-650,450,-640,450,-640,450,-669,450,-669,450,-659,450]},{"from":14,"to":8,"fromPort":"OUT","toPort":"EN","key":-5,"points":[-460,430,-450,430,-450,430,-450,640,-80,640,-70,640]},{"from":14,"to":6,"fromPort":"OUT","toPort":"EN","key":-6,"points":[-460,430,-450,430,-450,430,-450,360,-90,360,-80,360]},{"from":14,"to":4,"fromPort":"OUT","toPort":"EN","key":-19,"points":[-460,430,-450,430,-450,430,-450,80,-90,80,-80,80],"routing":"Orthogonal"},{"from":14,"to":1,"fromPort":"OUT","toPort":"EN","key":-20,"points":[-460,430,-450,430,-450,430,-450,-190,-90,-190,-80,-190]},{"from":1,"to":10,"fromPort":"OUT","toPort":"IN","key":-21,"points":[20,-230,30,-230,42.5,-230,42.5,-230,55,-230,65,-230]},{"from":4,"to":13,"fromPort":"OUT","toPort":"IN","key":-22,"points":[20,40,30,40,37.5,40,37.5,40,45,40,55,40]},{"from":6,"to":17,"fromPort":"OUT","toPort":"IN","key":-23,"points":[20,320,30,320,37.5,320,37.5,320,45,320,55,320]},{"from":8,"to":18,"fromPort":"OUT","toPort":"IN","key":-24,"points":[30,600,40,600,47.5,600,47.5,600,55,600,65,600]},{"from":20,"to":2,"fromPort":"OUT","toPort":"IN2","key":-25,"points":[-595,-210,-585,-210,-402.5,-210,-402.5,-210,-220,-210,-210,-210]},{"from":20,"to":9,"fromPort":"OUT","toPort":"IN2","key":-26,"points":[-595,-210,-585,-210,-340,-210,-340,-150,-340,-150,-340,-140]},{"from":19,"to":1,"fromPort":"OUT","toPort":"R","key":-27,"points":[-595,-20,-585,-20,-585,-20,-585,-150,-30,-150,-30,-140,-30,-150],"routing":"Orthogonal"},{"from":19,"to":4,"fromPort":"OUT","toPort":"R","key":-28,"points":[-595,-20,-585,-20,-590,-20,-590,132,-30,132,-30,130,-30,120],"routing":"Orthogonal"},{"from":19,"to":6,"fromPort":"OUT","toPort":"R","key":-29,"points":[-595,-20,-585,-20,-590,-20,-590,250,-380,250,-380,400,-30,400,-30,410,-30,400],"routing":"Orthogonal"},{"from":19,"to":8,"fromPort":"OUT","toPort":"R","key":-30,"points":[-595,-20,-585,-20,-588,-20,-588,250,-380,250,-380,692,-20,692,-20,690,-20,680],"routing":"Orthogonal"},{"from":21,"to":16,"fromPort":"OUT","toPort":"D","key":-31,"points":[-765,450,-755,450,-755,450,-760,450,-760,450,-750,450]},{"from":21,"to":14,"fromPort":"OUT","toPort":"IN1","key":-32,"points":[-765,450,-755,450,-755,450,-755,410,-590,410,-580,410]}]}

Binary_Counter_4Bit/README.MD

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<!-- Please do not change this html logo with link -->
2+
3+
<a href="https://www.microchip.com" rel="nofollow"><img src="images/microchip.png" alt="MCHP" width="300"/></a>
4+
5+
# Binary Counter 4Bit
6+
7+
The module has Reset, Enable and Clock inputs.
8+
9+
The counter clock can be configured by the user and is not dependent on CLB Clock Selection. The clock signal can be generated, for example, by using a timer overflow or the CLB clock.
10+
11+
| **Reset** | **Enable** | **Output** |
12+
|:---------:|:----------:|:----------:|
13+
| 0 | 0 | Disabled |
14+
| 0 | 1 | Enabled |
15+
| 1 | 0 | Reset |
16+
| 1 | 1 | Reset |
17+
18+
The schematic is shown in the below image. A positive edge detector is used for the Clock input.
19+
<br><img src="images/binary_counter_4bit.png" width="600">
20+
21+
## Demo
22+
23+
The demo shows an exemple of using the counter. TMR0_Overflow is used as a Clock input.
24+
<br><img src="images/binary_counter_4bit_demo.png" width="600">
25+
26+
The waveforms obtained on each output pin are shown in the below image.
27+
<br><img src="images/binary_counter_4bit_waveforms.png" width="600">
302 KB
Loading
38 KB
Loading
40.4 KB
Loading
5.47 KB
Loading

Binary_Counter_4Bit/manifest.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"type": "CLB Synthesizer Library Module",
3+
"version": "1.0",
4+
"name": "Binary_Counter_4Bit",
5+
"files": [
6+
{
7+
"name": "Binary_Counter_4Bit",
8+
"file": "Binary_Counter_4Bit.sch",
9+
"id": "bc961f95-aab6-4bca-b7f8-660c4ef6d2ab",
10+
"type": "diagram"
11+
}
12+
],
13+
"entryFile": ""
14+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"class":"GraphLinksModel","linkKeyProperty":"key","linkFromPortIdProperty":"fromPort","linkToPortIdProperty":"toPort","nodeDataArray":[{"category":"dff","loc":"-700 470","key":8},{"category":"not","loc":"-620 450","key":9},{"category":"and","loc":"-520 430","key":10},{"category":"and","loc":"-280 470","angle":90,"flipX":false,"key":11},{"category":"and","loc":"-300 210","angle":90,"flipX":false,"key":12},{"category":"and","loc":"-320 -80","angle":90,"flipX":false,"key":13},{"category":"dffer","loc":"-20 590","key":14},{"category":"xor","loc":"-140 580","key":15},{"category":"dffer","loc":"-30 330","key":16},{"category":"xor","loc":"-150 320","key":17},{"category":"dffer","loc":"-30 50","key":18},{"category":"xor","loc":"-150 40","key":19},{"category":"xor","loc":"-150 -230","key":20},{"category":"dffer","loc":"-30 -220","key":21},{"category":"not","loc":"-150 -320","key":22,"angle":180,"flipX":false},{"category":"not","loc":"-140 -50","key":23,"angle":180,"flipX":false},{"category":"not","loc":"-150 230","key":24,"angle":180,"flipX":false},{"category":"moduleoutputport","portname":"Bit0","size":"130 20","loc":"130 -230","key":4,"inputmodifier":"synchronized"},{"category":"moduleoutputport","portname":"Bit1","size":"130 20","loc":"120 40","key":5,"inputmodifier":"synchronized"},{"category":"moduleoutputport","portname":"Bit2","size":"130 20","loc":"120 320","key":6,"inputmodifier":"synchronized"},{"category":"moduleoutputport","portname":"Bit3","size":"130 20","loc":"110 580","key":7,"inputmodifier":"synchronized"},{"category":"moduleinputport","portname":"Reset","size":"130 20","loc":"-650 -10","key":1,"inputmodifier":"synchronized"},{"category":"moduleinputport","portname":"Enable","size":"130 20","loc":"-640 -210","key":2,"inputmodifier":"synchronized"},{"category":"moduleinputport","portname":"Clock","size":"130 20","loc":"-830 450","key":3,"inputmodifier":"synchronized"}],"linkDataArray":[{"from":10,"to":21,"fromPort":"OUT","toPort":"EN","key":-20,"points":[-460,430,-450,430,-450,430,-450,-190,-90,-190,-80,-190]},{"from":10,"to":18,"fromPort":"OUT","toPort":"EN","key":-19,"points":[-460,430,-450,430,-450,430,-450,80,-90,80,-80,80],"routing":"Orthogonal"},{"from":10,"to":16,"fromPort":"OUT","toPort":"EN","key":-6,"points":[-460,430,-450,430,-450,430,-450,360,-90,360,-80,360]},{"from":10,"to":14,"fromPort":"OUT","toPort":"EN","key":-5,"points":[-460,430,-450,430,-450,430,-450,620,-80,620,-70,620]},{"from":8,"to":9,"fromPort":"OUT","toPort":"IN1","key":-47,"points":[-650,450,-640,450,-640,450,-669,450,-669,450,-659,450]},{"from":9,"to":10,"fromPort":"OUT","toPort":"IN2","key":-48,"points":[-579,450,-569,450,-569,450,-590,450,-590,450,-580,450]},{"from":14,"to":15,"fromPort":"OUT","toPort":"IN1","key":-18,"points":[30,580,40,580,30,580,30,530,-212,530,-212,560,-210,560,-200,560],"routing":"Orthogonal"},{"from":11,"to":15,"fromPort":"OUT","toPort":"IN2","key":-17,"points":[-280,530,-280,540,-280,600,-210,600,-210,600,-200,600],"routing":"Orthogonal"},{"from":16,"to":17,"fromPort":"OUT","toPort":"IN1","key":-16,"points":[20,320,30,320,30,320,30,270,-210,270,-210,300,-220,300,-210,300],"routing":"Orthogonal"},{"from":12,"to":17,"fromPort":"OUT","toPort":"IN2","key":-14,"points":[-300,270,-300,280,-300,340,-220,340,-220,340,-210,340],"routing":"Orthogonal"},{"from":12,"to":11,"fromPort":"OUT","toPort":"IN2","key":-13,"points":[-300,270,-300,280,-300,335,-300,335,-300,400,-300,410]},{"from":18,"to":19,"fromPort":"OUT","toPort":"IN1","key":-12,"points":[20,40,30,40,30,-10,-220,-10,-220,20,-210,20],"routing":"Orthogonal"},{"from":13,"to":19,"fromPort":"OUT","toPort":"IN2","key":-10,"points":[-320,-20,-320,-10,-320,60,-220,60,-220,60,-210,60],"routing":"Orthogonal"},{"from":13,"to":12,"fromPort":"OUT","toPort":"IN2","key":-9,"points":[-320,-20,-320,-10,-320,65,-320,65,-320,140,-320,150]},{"from":21,"to":20,"fromPort":"OUT","toPort":"IN1","key":-7,"points":[20,-230,30,-230,30,-280,-220,-280,-220,-250,-210,-250],"routing":"Orthogonal"},{"from":15,"to":14,"fromPort":"OUT","toPort":"D","key":-4,"points":[-80,580,-70,580,-70,580,-80,580,-80,580,-70,580]},{"from":17,"to":16,"fromPort":"OUT","toPort":"D","key":-3,"points":[-90,320,-80,320,-80,320,-90,320,-90,320,-80,320]},{"from":19,"to":18,"fromPort":"OUT","toPort":"D","key":-2,"points":[-90,40,-80,40,-80,40,-90,40,-90,40,-80,40]},{"from":20,"to":21,"fromPort":"OUT","toPort":"D","key":-1,"points":[-90,-230,-80,-230,-80,-230,-90,-230,-90,-230,-80,-230]},{"from":21,"to":22,"fromPort":"OUT","toPort":"IN1","key":-8,"points":[20,-230,30,-230,30,-320,-101,-320,-101,-320,-111,-320]},{"from":22,"to":13,"fromPort":"OUT","toPort":"IN1","key":-33,"points":[-191,-320,-201,-320,-300,-320,-300,-150,-300,-150,-300,-140]},{"from":18,"to":23,"fromPort":"OUT","toPort":"IN1","key":-11,"points":[20,40,30,40,30,-50,-91,-50,-91,-50,-101,-50],"routing":"Orthogonal"},{"from":23,"to":12,"fromPort":"OUT","toPort":"IN1","key":-34,"points":[-181,-50,-191,-50,-280,-50,-280,140,-280,140,-280,150],"routing":"Orthogonal"},{"from":16,"to":24,"fromPort":"OUT","toPort":"IN1","key":-15,"points":[20,320,30,320,30,230,-101,230,-101,230,-111,230],"routing":"Orthogonal"},{"from":24,"to":11,"fromPort":"OUT","toPort":"IN1","key":-35,"points":[-191,230,-201,230,-260,230,-260,400,-260,410],"routing":"Orthogonal"},{"from":21,"to":4,"fromPort":"OUT","toPort":"IN","key":-21,"points":[20,-230,30,-230,42.5,-230,42.5,-230,55,-230,65,-230]},{"from":18,"to":5,"fromPort":"OUT","toPort":"IN","key":-22,"points":[20,40,30,40,37.5,40,37.5,40,45,40,55,40]},{"from":16,"to":6,"fromPort":"OUT","toPort":"IN","key":-23,"points":[20,320,30,320,37.5,320,37.5,320,45,320,55,320]},{"from":14,"to":7,"fromPort":"OUT","toPort":"IN","key":-24,"points":[30,580,40,580,40,580,35,580,35,580,45,580]},{"from":2,"to":20,"fromPort":"OUT","toPort":"IN2","key":-25,"points":[-575,-210,-565,-210,-392.5,-210,-392.5,-210,-220,-210,-210,-210]},{"from":2,"to":13,"fromPort":"OUT","toPort":"IN2","key":-26,"points":[-575,-210,-565,-210,-340,-210,-340,-150,-340,-150,-340,-140]},{"from":1,"to":21,"fromPort":"OUT","toPort":"R","key":-27,"points":[-585,-10,-575,-10,-560,-10,-560,-140,-30,-140,-30,-150],"routing":"Orthogonal"},{"from":1,"to":18,"fromPort":"OUT","toPort":"R","key":-28,"points":[-585,-10,-575,-10,-560,-10,-560,130,-30,130,-30,120],"routing":"Orthogonal"},{"from":1,"to":16,"fromPort":"OUT","toPort":"R","key":-29,"points":[-585,-10,-575,-10,-560,-10,-560,130,-390,130,-390,400,-30,400,-30,410,-30,400],"routing":"Orthogonal"},{"from":1,"to":14,"fromPort":"OUT","toPort":"R","key":-30,"points":[-585,-10,-575,-10,-560,-10,-560,130,-390,130,-390,660,-20,660,-20,670,-20,660],"routing":"Orthogonal"},{"from":3,"to":8,"fromPort":"OUT","toPort":"D","key":-31,"points":[-765,450,-755,450,-755,450,-760,450,-760,450,-750,450]},{"from":3,"to":10,"fromPort":"OUT","toPort":"IN1","key":-32,"points":[-765,450,-755,450,-755,450,-755,410,-590,410,-580,410]}]}

Binary_Down_Counter_4Bit/README.MD

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<!-- Please do not change this html logo with link -->
2+
3+
<a href="https://www.microchip.com" rel="nofollow"><img src="images/microchip.png" alt="MCHP" width="300"/></a>
4+
5+
# Binary Down Counter 4Bit
6+
7+
The module has Reset, Enable and Clock inputs.
8+
9+
The counter clock can be configured by the user and is not dependent on CLB Clock Selection. The clock signal can be generated for example by using a timer overflow or the CLB clock.
10+
11+
| **Reset** | **Enable** | **Output** |
12+
|:---------:|:----------:|:----------:|
13+
| 0 | 0 | Disabled |
14+
| 0 | 1 | Enabled |
15+
| 1 | 0 | Reset |
16+
| 1 | 1 | Reset |
17+
18+
The schematic is shown in the below image. A positive edge detector is used for the Clock input.
19+
<br><img src="images/binary_down_counter_4bit.png" width="600">
20+
21+
## Demo
22+
23+
The demo shows an exemple of using the counter. TMR0_Overflow is used as a Clock input.
24+
<br><img src="images/binary_down_counter_4bit_demo.png" width="600">
25+
26+
The waveforms obtained on each output pin are shown in the below image.
27+
<br><img src="images/binary_down_counter_4bit_waveforms.png" width="600">
244 KB
Loading

0 commit comments

Comments
 (0)