#import "../template.typ": *
#show: report.with()
#show: reportTop.with(
title: "論理回路設計 第1回レポート課題",
submit-date: "2024/10/21",
)
1. 以下の原始多項式について次の問に答えよ。
$
x^4 + x^3 + 1
$
#grid(
columns: (auto, auto),
gutter: 10pt,
[
#enum(
numbering: "(1)",
[
$1 slash 11001$のmod2除算は右より \
$0.accent(0, dot)0011110101100accent(1, dot)$となる。よって得られるM系列は
$
{000111101011001}
$
である。今回、被除数の"11001"は5bitであるため周期の最大値は
$
2^4 - 1 = 15
$
となる。これは求まったM系列の周期と一致するため、最長のものである。
],
[
$
C(x) / a(x) &= 1 / (x^4 + x^3 + 1) = x^(-4) / (x^(-4) + x^(-1) + 1) \
therefore C(x) &= {a(x) + C(x)}x^(-4) + C(x)x^(-1) \
&= [{a(x) + C(x)}x^(-3) + C(x)]x^(-1)
$
よって求めるブロック図は下図である。
],
)
],
[
#grid(
columns: 45, rows: 20,
column-gutter: 1pt, row-gutter: 4pt,
..(grid.cell(y: 0)[],) * 6,
.."0.000111101011001000111".codepoints().map(grid.cell.with(y: 0)),
grid.cell(colspan: 3, y: 0, [...]),
..(grid.cell(y: 0)[\u{2002}],) * 12,
grid.hline(y: 1, start: 5),
.."11001)".codepoints().map(grid.cell.with(y: 1)),
.."1.000".codepoints().map(grid.cell.with(y: 1)),
grid.cell(colspan: 3, y: 1, [...]),
..(grid.cell(y: 2)[],) * 6,
.."1 1001".codepoints().map(grid.cell.with(y: 2)),
grid.hline(y: 3, start: 6, end: 12),
..(grid.cell(y: 3)[],) * 8,
.."10010".codepoints().map(grid.cell.with(y: 3)),
grid.cell(colspan: 6, y: 3, align: right, [(9)]),
..(grid.cell(y: 4)[],) * 8,
.."11001".codepoints().map(grid.cell.with(y: 4)),
grid.hline(y: 5, start: 8, end: 13),
..(grid.cell(y: 5)[],) * 9,
.."10110".codepoints().map(grid.cell.with(y: 5)),
grid.cell(colspan: 7, y: 5, align: right, [(11)]),
..(grid.cell(y: 6)[],) * 9,
.."11001".codepoints().map(grid.cell.with(y: 6)),
grid.hline(y: 7, start: 9, end: 14),
..(grid.cell(y: 7)[],) * 10,
.."11110".codepoints().map(grid.cell.with(y: 7)),
grid.cell(colspan: 7, y: 7, align: right, [(15)]),
..(grid.cell(y: 8)[],) * 10,
.."11001".codepoints().map(grid.cell.with(y: 8)),
grid.hline(y: 9, start: 10, end: 15),
..(grid.cell(y: 9)[],) * 12,
.."11100".codepoints().map(grid.cell.with(y: 9)),
grid.cell(colspan: 10, y: 9, align: right, [(7),(14)]),
..(grid.cell(y: 10)[],) * 12,
.."11001".codepoints().map(grid.cell.with(y: 10)),
grid.hline(y: 11, start: 12, end: 17),
..(grid.cell(y: 11)[],) * 14,
.."10100".codepoints().map(grid.cell.with(y: 11)),
grid.cell(colspan: 10, y: 11, align: right, [(5),(10)]),
..(grid.cell(y: 12)[],) * 14,
.."11001".codepoints().map(grid.cell.with(y: 12)),
grid.hline(y: 13, start: 14, end: 19),
..(grid.cell(y: 13)[],) * 15,
.."11010".codepoints().map(grid.cell.with(y: 13)),
grid.cell(colspan: 7, y: 13, align: right, [(13)]),
..(grid.cell(y: 14)[],) * 15,
.."11001".codepoints().map(grid.cell.with(y: 14)),
grid.hline(y: 15, start: 15, end: 20),
..(grid.cell(y: 15)[],) * 18,
.."11000".codepoints().map(grid.cell.with(y: 15)),
grid.cell(colspan: 15, y: 15, align: right, [(3),(6),(12)]),
..(grid.cell(y: 16)[],) * 18,
.."11001".codepoints().map(grid.cell.with(y: 16)),
grid.hline(y: 17, start: 18, end: 23),
..(grid.cell(y: 17)[],) * 22,
.."10000".codepoints().map(grid.cell.with(y: 17)),
grid.cell(colspan: 16, y: 17, align: right, [(1),(2),(4),(8)]),
..(grid.cell(y: 18)[],) * 22,
.."11001".codepoints().map(grid.cell.with(y: 18)),
grid.hline(y: 19, start: 22, end: 27),
..(grid.cell(y: 19)[],) * 23,
.."1001".codepoints().map(grid.cell.with(y: 19)),
grid.cell(colspan: 7, y: 19, align: right, [(9)]),
grid.cell(colspan: 45, y: 20, align: right, [以下繰り返し]),
)
],
)
#figure(
image("./draws/1_2_block.svg", width: 14cm),
caption: "除算ブロック図",
)
#enum(
numbering: "(1)",
start: 3,
[
#figure(
image("./draws/1_3_circuit.svg"),
caption: "論理回路",
)
],
[
#rotate(90deg, reflow: true)[
#figure(
[
$
C L K: & signals("0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0") \
a(x): & signals("0|1.|0.......................................") \
D_0: & signals("0|1.|0.....|1.......|0.|1.|0.|1...|0...|1.|0.....|1...") \
Q_0: & signals("0..|1.|0.....|1.......|0.|1.|0.|1...|0...|1.|0.....|1.") \
Q_1: & signals("0....|1.|0.....|1.......|0.|1.|0.|1...|0...|1.|0.....") \
Q_2: & signals("0......|1.|0.....|1.......|0.|1.|0.|1...|0...|1.|0...") \
D_3: & signals("0......|1.......|0.|1.|0.|1...|0...|1.|0.....|1.....") \
Q_3: & signals("0........|1.......|0.|1.|0.|1...|0...|1.|0.....|1...")
$
],
caption: "タイミングチャート",
)
]
],
)