TEXTに投稿されたコード一覧

TEXT .srm読み込み

		// .srm read
		state st5 if(fat.ack){
			fat.fopen(SW<7:0>+0x01);
			pA := 0b000100 || 0x0000;
			goto st6;
		}
		state st6 if(fat.ack){
			fat.read();
			goto st7;
		}
		state st7 if(fat.ack & sdram.ack){
			sdram.write(pA, 0x00 || fat.fdata);
			pA++;
			fat.read();
			if(fat.eof) finish;
		}

TEXT 各種ブラウザのホームページ保存先

// IE - レジストリ
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
Start Page=http://hogehoge/

// Opera - ini
"C:\Users\<User Name>\AppData\Roaming\Opera\Opera\operaprefs.ini"
[User Prefs]
Home URL=http://hogehoge/

// Chrome - json
"C:\Users\<User Name>\AppData\Local\Google\Chrome\User Data\Default\Preferences"
homepage="http://hogehoge/"

// Firefox - js?
"C:\Users\<User Name>\AppData\Roaming\Mozilla\Firefox\Profiles\<Random String>.default\prefs.js"
user_pref("browser.startup.homepage", "http://hogehoge/");

// 

#define CSIDL_LOCAL_APPDATA 0x001c
CSIDL_LOCAL_APPDATA
XP: C:\Documents and Settings\<User Name>\Local Settings\Application Data

7: C:\Users\<User Name>\AppData\Local
#define CSIDL_APPDATA 0x001a
CSIDL_APPDATA
XP: C:\Documents and Settings\<User Name>\Application Data
7: C:\Users\<User Name>\AppData\Roaming

// HSPで!
// CSIDL_APPDATA
mes dirinfo(0x1001a)
// CSIDL_LOCAL_APPDATA
mes dirinfo(0x1001c)

TEXT DirectColorMode

		if(f_direct_color & (bg_mode==0b111) & (m_z_reg==0b001)){
			main_col = md7.dir_col;
		}
		else{
			main_col = main_cgram.D_out;
		}

TEXT 65C816

TEXT TEST_ARY2.vhd

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;

entity TEST_ARY is
port(
	nRST : in std_logic;
	CLK : in std_logic;
	SEL : in std_logic
);
end;

architecture RTL of TEST_ARY is

	type    BYTE_ARY_CMD1 is array(7 downto 0) of std_logic_vector(7 downto 0);
	signal  HEAD_DAT : BYTE_ARY_CMD1;
	signal  CMD1_DAT : BYTE_ARY_CMD1;

	type    BYTE_ARY_CMD2 is array(3 downto 0) of std_logic_vector(7 downto 0);
	signal  CMD2_DAT : BYTE_ARY_CMD2;

begin

	process(nRST, CLK) begin
		if(CLK'event and CLK='1') then
			case(SEL) is

			when '0' =>
				-- OK
				HEAD_DAT <= CMD1_DAT;

			when '1' =>

-- Error Target type byte_ary_cmd1 in signal assignment is different from expression type byte_ary_cmd2.
			--	HEAD_DAT(3 downto 0) <= CMD2_DAT;

				-- OK
				for i in 0 to 3 loop
					HEAD_DAT(i) <= CMD2_DAT(i);
				end loop;

			when others => null;
			end case;
		end if;
	end process;

end RTL;

TEXT TEST_ARY.vhd

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;

entity TEST_ARY is
port(
	nRST : in std_logic;
	CLK : in std_logic;
	SEL : in std_logic
);
end;

architecture RTL of TEST_ARY is

	subtype BIT_ARY_8 is std_logic_vector(7 downto 0);

	type    BYTE_ARY_CMD1 is array(3 downto 0) of BIT_ARY_8;
	signal  HEAD_DAT : BYTE_ARY_CMD1;
	signal  CMD1_DAT : BYTE_ARY_CMD1;

	type    BYTE_ARY_CMD2 is array(3 downto 0) of BIT_ARY_8;
	signal  CMD2_DAT : BYTE_ARY_CMD2;

begin

	process(nRST, CLK) begin
		if(CLK'event and CLK='1') then
			case(SEL) is

			when '0' =>
				-- OK
				HEAD_DAT <= CMD1_DAT;

			when '1' =>

				-- Error Signal "cmd2_dat" is type byte_ary_cmd2; expecting type byte_ary_cmd1.
			--	HEAD_DAT <= CMD2_DAT;

				-- OK
				for i in 0 to 3 loop
					HEAD_DAT(i) <= CMD2_DAT(i);
				end loop;

			when others => null;
			end case;
		end if;
	end process;

end RTL;

TEXT USB JTAG sim

`timescale 1ns/1ns

module USB_JTAG_sim;

	reg RSTn, CLK;

	wire TDI, TCK, TDO, TMS;

	reg FT_nRXF;
	wire [7:0] FT_D;
	reg [7:0] D;
	wire FT_nTXE, FT_R, FT_W, ASDO, nCE, nCS, OE;

// 受信
	wire RxD_Ready;
	wire [7:0] RxD_DATA;
// 送信
	reg [7:0] TxD_DATA;
	reg TxD_Start;
	wire TxD_Done;

	jtag_logic jtagu(
		.RSTn(RSTn), // add sakamoto
		.CLK(CLK),     // : IN STD_LOGIC;        -- external 24/25 MHz oscillator
		.nRXF(FT_nRXF), // : IN STD_LOGIC;       -- FT245BM nRXF
		.nTXE(FT_nTXE),   // : IN STD_LOGIC;       -- FT245BM nTXE
		.B_TDO(TDO), //  : IN STD_LOGIC;     -- JTAG input: TDO, AS/PS input: CONF_DONE
		.B_ASDO(ASDO),// : IN STD_LOGIC;     -- AS input: DATAOUT, PS input: nSTATUS
		.B_TCK(TCK),  //  : BUFFER STD_LOGIC; -- JTAG output: TCK to chain, AS/PS DCLK
		.B_TMS(TMS),  //  : BUFFER STD_LOGIC; -- JTAG output: TMS to chain, AS/PS nCONFIG
		.B_NCE(nCE),  //  : BUFFER STD_LOGIC; -- AS output: nCE
		.B_NCS(nCS),  //  : BUFFER STD_LOGIC; -- AS output: nCS
		.B_TDI(TDI),  //  : BUFFER STD_LOGIC; -- JTAG output: TDI to chain, AS: ASDI, PS: DATA0
		.B_OE(OE), // : BUFFER STD_LOGIC; -- LED output/output driver enable
		.nRD(FT_R),  // : OUT STD_LOGIC;       -- FT245BM nRD
		.WR(FT_W),   // : OUT STD_LOGIC;        -- FT245BM WR
		.D(FT_D)     // : INOUT STD_LOGIC_VECTOR(7 downto 0) -- FT245BM D[7..0]
	);

	USB_JTAG uju(
		.iTxD_DATA(TxD_DATA), .oTxD_Done(TxD_Done), .iTxD_Start(0),
		.oRxD_DATA(RxD_DATA), .oRxD_Ready(RxD_Ready),
		.iRST_n(RSTn), .iCLK(CLK),
		.TDO(TDO), .TDI(TDI), .TCS(nCS), .TCK(TCK)
	);

	assign FT_D = D;

	always begin
	    CLK = 0;
	#10 CLK = 1;
	#10;
	end

	task send_bang;
		input [7:0] data;
	begin
	    D = data;
	    FT_nRXF = 0;
	#20
	    FT_nRXF = 1;
	#100;
	end
	endtask

	task send_byte;
		input [7:0] data;
	begin

// send 0
	send_bang({3'b001,data[0],4'b0110});
	send_bang({3'b001,data[0],4'b0111});
// send 1
	send_bang({3'b001,data[1],4'b0110});
	send_bang({3'b001,data[1],4'b0111});
// send 2
	send_bang({3'b001,data[2],4'b0110});
	send_bang({3'b001,data[2],4'b0111});
// send 3
	send_bang({3'b001,data[3],4'b0110});
	send_bang({3'b001,data[3],4'b0111});
// send 4
	send_bang({3'b001,data[4],4'b0110});
	send_bang({3'b001,data[4],4'b0111});
// send 5
	send_bang({3'b001,data[5],4'b0110});
	send_bang({3'b001,data[5],4'b0111});
// send 6
	send_bang({3'b001,data[6],4'b0110});
	send_bang({3'b001,data[6],4'b0111});
// send 7
	send_bang({3'b001,data[7],4'b0110});
	send_bang({3'b001,data[7],4'b0111});

	end
	endtask

	initial begin
	    RSTn = 1;
	#5  RSTn = 0;
	#10 RSTn = 1;

// reset
	send_bang(8'b00101110);
	send_bang(8'b00100110);

	send_byte(8'b11001010);
	send_byte(8'b11010001);

	end

endmodule

TEXT [Prolog]論理パズル/帽子は何色?

/*
	帽子は何色?
	論理的思考力を持つ3人の正直者 a, b, c に、5つの帽子(赤×3, 白×2)のうち3つを1つずつ被せる。
	どの人も、他2人の帽子の色を知っている(∵見えている)が、自身の帽子の色は知らない。
	出題者「あなたの帽子の色は?」 a「……わかりません。」
	出題者「あなたの帽子の色は?」 b「……わかりません。」
	出題者「あなたの帽子の色は?」 ――さて、c の帽子の色は?

% 出展('数学ガール ゲーデルの不完全性定理', page: 16).
% (同値な問題だが、文字数圧縮のため問題文は書き直した。)
*/

insert(E, Set, [E|Set]).
insert(E, [X|Set0], [X|Set]) :- insert(E, Set0, Set).

部分集合([], X).
部分集合([H|L], R) :- insert(H, R0, R), 部分集合(L, R0).

不確定(X, Cond) :-		% 条件 Cond を満たす変数 X は一意に存在しない
	setof(X, Cond, L), \+(length(L, 1)).

?-	_hats = [赤, 赤, 赤, 白, 白],		% 簡単のため
	A = 赤, B = 赤, (C = 赤 ; C = 白),
%	部分集合([A, B, C], _hats),

	% a には自身の帽子の色 ASelf が確定できない
	不確定(ASelf, 部分集合([ASelf, B, C], _hats)),

	% a には自身の帽子の色 ASelf が確定できないことが分かっていても、
	% b には自身の帽子の色 BSelf が確定できない
	不確定(BSelf, (
		部分集合([A, BSelf, C], _hats),
		不確定(ASelf2, 部分集合([ASelf2, BSelf, C], _hats))
	)).

% A = 赤, B = 赤, C = 赤

TEXT [Prolog]論理パズル/正直者は誰? (失敗例)

% 嘘つき問題
/*
	正直者は誰?
	A1「ここに、嘘つきは1人いる。」
	A2「ここに、嘘つきは2人いる。」
	A3「ここに、嘘つきは3人いる。」
	A4「ここに、嘘つきは4人いる。」
	A5「ここに、嘘つきは5人いる。」

	引用('数学ガール ゲーデルの不完全性定理', page: 3).
*/

% 定義
嘘(A) :- \+(A).

正直者(P) :- 人(P), \+(嘘つき(P)).
嘘つき(P) :- 人(P), 主張(P, A), 嘘(A).

'嘘つきはN人いる'(N) :- setof(P, 嘘つき(P), L), length(L, N).

% 問題
人(a1). 主張(a1, '嘘つきはN人いる'(1)).	% 元々閉世界なので「ここに、」は不要
人(a2). 主張(a2, '嘘つきはN人いる'(2)).
人(a3). 主張(a3, '嘘つきはN人いる'(3)).
人(a4). 主張(a4, '嘘つきはN人いる'(4)).
人(a5). 主張(a5, '嘘つきはN人いる'(5)).

:- trace. % ステップ実行にて無限再帰を確認なされ
?- setof(P, 正直者(P), L).	% 正直者リスト L を求める。
%	L = [a4]

TEXT ワンホットのスマート化

reg srch_slct<8>; // ワンホットレジスタ
reg spr_buf_set<8>; // 描画されるスプライトセット

// 以前の記述
			any{
				srch_slct<0> : spr_buf_set := 0b00000000;
				srch_slct<1> : spr_buf_set := 0b00000001;
				srch_slct<2> : spr_buf_set := 0b00000011;
				srch_slct<3> : spr_buf_set := 0b00000111;
				srch_slct<4> : spr_buf_set := 0b00001111;
				srch_slct<5> : spr_buf_set := 0b00011111;
				srch_slct<6> : spr_buf_set := 0b00111111;
				srch_slct<7> : spr_buf_set := 0b01111111;
				else         : spr_buf_set := 0b11111111;
			}
// これでいいんじゃん
			spr_buf_set := srch_slct - 0x01;
Total Pages: 2 / 512345

よく投稿されているコード

タグ

最近投稿されたコード