[過去ログ]
Qiita 2 - キータぞ、来たぞ、キータだぞー (1002レス)
Qiita 2 - キータぞ、来たぞ、キータだぞー http://mevius.5ch.net/test/read.cgi/tech/1658762410/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
657: デフォルトの名無しさん [sage] 2023/01/29(日) 13:13:36.42 ID:V8aF3j6G >>656 パタヘネのFigure C2.3のOperation0(alu_ctl[0])をそのままVerilogで書くと alu_ctl[0] = (alu_op[1] & (f[3] & f[0])); だけど alu_ctl[0] = (alu_op[1] & (f[1] & ~f[0])); が正しいと言いたいらしい でも、Figure C.2.1の4行目は 1,x,x,x,0,0,1,0 (alu_op[1],alu_op[0],f[5],f[4],f[3],f[2],f[1],f[0]) => 0110 だから最下位bitのalu_ctl[0]は0になるんだけど、 そのコードだとalu_op[1]=1,f[1]=1,f[0]=0だから~f[0]=1になり、 alu_ctl[0]が1 & (1 & 1) => 1になるからおかしいと思う そもそも、パタヘネのFigure C.2.xに出てくるfはなんだかよくわからない f[2:0]はいわゆるFunct3(inst[14:12]で、f[3]はFunct7の6bit目(減算命令とかに 使われる,inst[30])、そのコードでも f = {inst[30], inst[14:12]}; にしているけど、全く使ってないf[5],f[4]は何のためのあるの? http://mevius.5ch.net/test/read.cgi/tech/1658762410/657
658: デフォルトの名無しさん [sage] 2023/01/29(日) 13:55:29.23 ID:V8aF3j6G 補足というか、このコードが何の処理をしている部分か説明 これはRISC-Vの機械語からどういう演算をすべきか決める回路のコード RISC-Vの命令フォーマットはR-type、I-type,S-type, U-typeの4種類で、S-typeとU-typeは 即値のフォーマットにより、それぞれS-formatとSB-format、U-formatとUJ-formatに分けられる 32bitの命令instのうち最下位7bit(inst[6:0])がopcode 7bitだと命令数が足らなくなるので、U-type以外中央の3bit(inst[14:12])が追加のopcode(Funct3) レジスタ間演算命令のR-typeでは最上位ビットから7bit分(inst[31:25])がさらに追加のopcode(Funct7) I-typeは基本的に最上位ビットから12bit分(inst[31:20])は即値だけど、シフト命令は32bitの場合 5bitでシフト量の指定ができるから、余ったbitのinst[30]をopcodeとして使う命令がある 実際にRV32Iの範囲でFunct7のinst[30]を利用する命令は、R-typeの加算命令ADD(Funct3=000)に 対する減算命令SUB命令、論理右シフトSRL(Funct3=101)に対する算術右シフトSRA、I-typeの 即値論理右シフトSRLI(Funct3=101)に対する算術右シフトSRAI このことを理解していれば、ALUに対して加算命令か減算命令かやシフト命令かそうでないかの 信号を送らないといけないわけで、alu_ctl[0]は加算か減算かの信号線で、alu_ctl[2]はシフト命令か どうかの信号線って推測できるから、どちらもinst[30]がないと区別できないことがわかるはず だとするとなんでinst[30]がいらないって発想になるんだろう?こちらがなんか勘違いしている? http://mevius.5ch.net/test/read.cgi/tech/1658762410/658
659: デフォルトの名無しさん [sage] 2023/01/29(日) 14:03:18.90 ID:V8aF3j6G >>658 一応補足 > だとするとなんでinst[30]がいらないって発想になるんだろう? inst[30]はf[3]ね alu_ctl[0]が加算化減算化を区別する信号線ならinst[30]=f[3]がないといけないのに >>656のコードはf[3]を取り除くコードにしていて、こんな書き換えようと思うこと自体 理解できないという意味 http://mevius.5ch.net/test/read.cgi/tech/1658762410/659
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.050s