質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

Q&A

3回答

657閲覧

Altera FPGA(intel入ってますか?)に加算回路を設計してC言語で値の計算を行いたい

brain

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

0グッド

0クリップ

投稿2022/05/02 06:52

編集2022/05/03 15:57

お世話になります。
タイトルのintel入ってますか?はもう聞かなくなってしまいました。

タイトルの通りで加算回路を設計してC言語で高速な計算を行いたいのですが、仕様が分かりません。
後々、ニューラルネットワークを設計したいと思っておりますが、そもそも、値の受け渡しの設定?方法?が分からずつまずいてます。
行いたい事はモジュールを設計し、それに値を渡し結果を受け取ることを行いたいです。

Verilog

1 2module ADD( 3 input wire clk, 4 input wire res_n, 5 input wire [7:0] inputA, // C言語から値を渡す 6 input wire [7:0] inputB, // C言語から値を渡す 7 output wire [7:0] ouputC // C言語から値を受け取る 8); 9 10reg [7:0] result; 11always @* begin 12 result = inputA + inputB; 13end 14 15assign outputC = result; 16 17// QSYS から 設計した 回路 18MYQSYS yMYQSYS( 19 .clk_clk(clk), 20 .reset_reset(res_n), 21 .inputA_external_connection(inputA), 22 .inputB_external_connection(inputB), 23 .outpoutC_external_connection(outputC) 24); 25

C

1# include <必要なライブラリ> 2 3int main(void) { 4 uint8_t A, B, C; 5 A = 1; B = 2; 6 FPGAモジュールADDのinputA(A); // inputAの引数に値を渡す 7 FPGAモジュールADDのinputB(B); // inputBの引数に値を渡す 8 C = FPGAモジュールADDのoutputC(PIO_0_BASE); // outputCの結果を受け取る 9 10 printf("A(%d) + B(%d) = C(%d)\n", A, B, C); // output: A(1) + B(2) = C(3) 11 12 return 0; 13}

上記のようなイメージで設計をしたいのですが、分かりません。
どうかご教授をお願いします。

参考となるサイトがあれば是非教えて頂きたいです。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2022/05/02 08:41

その C のコードというのは一体どこで動く話なのでしょうか?
thkana

2022/05/02 23:44

きっとNIOSなんでしょうけれど。 だとすると、ペリフェラルの一番基本的なパターンで、あちこちにサンプルがありそうに思うけど違うのかしら。 (将来のニューラルネットワーク云々は知らないけれど、少なくとも加算回路を外に出したとしてCPUのALUで計算するより速くなるかはとりあえず疑問)
brain

2022/05/03 06:38

どうもどうも、早速の応答ありがとうございます。 Cのコードはthkanaさんの言う通りNIOSで動くものです。 自分も計算が早くなるかは疑問ですが、とりあえず、専用の計算回路を作ってみたいという気持ちです。
guest

回答3

0

値の受け渡しの設定?方法?が分からずつまずいてます。

とのことなので、ARM内蔵のFPGAに関してARM側とハード側の連携の前提でいうと、下記が入門としては適切かと思います。
https://www.macnica.co.jp/business/semiconductor/articles/SoC-Trial_Seminar_Exercise_atlas_de10nano_v17.1_r4.pdf

投稿2022/05/02 13:11

YOshim

総合スコア1085

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

brain

2022/05/03 06:42

こんにちは! 回答ありがとうございます。 CPU内蔵ではないので、CPUとFPGAの連携は取れませんが、リンク先はとても参考になりました。 FPGAにCPUを構築すればできそうですね。
guest

0

FPGAボードで学ぶ 組込みシステム開発入門
[Intel FPGA編]

を読んでください

投稿2022/05/02 10:40

ozwk

総合スコア13512

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

brain

2022/05/03 06:45

回答ありがとうございます。 出来れば、ネット上に乗ってる参考サイトがいいですね。 あまりお金かけたくないです(T!T) ですが、intel FPGA編 もよさそうです。
guest

0

ハードウエア、と、ソフトウエア、の違いをまず理解する必要があろうかと思います

まずは、実際にFPGAを持ってきてそれにプログラムを行い、それが想定通り動作するようにしてみましょう。
おはなしはそれから、です。

投稿2022/05/02 07:26

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

brain

2022/05/03 06:51

回答ありがとうございます。 いきなり低評価で笑いました。笑いすぎて笑死しそうになりました。 そうですね、ハードとソフトを理解をする必要がありますね。 まだまだ勉強と理解が足りず、色んな方に聞きまわっている状態でございます。
y_waiwai

2022/05/03 06:57

実際に経験していない事象については、いくら勉強しようとひとに聞こうと、理解することは難しいかと。 あなたがやろうとしていることがどういうことかは、実際にそれを実装してみないとわからないと思いますよ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問