FPGAボードで学ぶVerilogHDL(CQ出版)

以前買っておいた本を、A級リーグ指し手1号の影響で、開封してみました
付属のDVD-ROMからソフトウェアをインストール。


最新版はXilinxからダウンロードできるとあったので、会員登録をしてダウンロードしましたが、
インストール中に「型番」入れてくれになり、CQで始まる型番らしきものを入れてみましたが
「怒られました」
とりあえずDVDに入ってるソフトをいれてみます


あとは、本に書いてある手順で、ソースを読み込んで、
ポートの設定ソースも読み込んで、
コンパイルしたら、できました(もともと動くソースなんだからできて当たり前)


さっそくFPGAにデータをロードしようと思いましたが、
ケーブルはパラレルです。
PC側がメスで、ボード側は押す。手持ちのパラレルケーブルはオス-オスで使えませんでした( ´Д`)
残念。
思わず、亀戸のドンキホーテにケーブル買いに行こうとか思うくらい残念ですが、
寒いのでやめておきます(パラレルケーブルとか売ってないかもしれんし)


ソースはled_onoffというのもので、おそらくLEDが点滅するんでしょう
書籍作者の著作物かもしれないけど、怒られはしないでしょう
こんなの。

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: KURUSUGAWA Electronics Industry Inc,.
// Engineer: Masami IKURA / Ichiro YAMATAKE
// 
// Create Date:    18:11:46 07/01/2006 
// Design Name: 
// Module Name:    led_onoff 
// Project Name: CQ-Publishing - Verilog-HDL training kit
// Target Devices: XC3S100E-VQ100
// Tool versions: ISE8.1SP3
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 
//
//////////////////////////////////////////////////////////////////////////////////
module led_onoff(			// モジュール宣言
	SW1_I	,					// ポート定義その1

	LED1_O ,					// ポート定義その2

// 予備の信号.未使用であるが宣言だけはしておく
	CLK_I ,					// ポート定義
	SW2_I	,					// ポート定義
	SW3_I	,					// ポート定義
	SW4_I	,					// ポート定義

	LED2_O ,					// ポート定義
	LED3_O ,					// ポート定義
	LED4_O ,					// ポート定義

	DP_OEN ,					// ポート定義
	DP_O ,					// ポート定義
	GPIN ,					// ポート定義
	GPIO ,
	TxD ,
	RxD
);

//************************************//
// 宣言されたポートに信号属性を与える

	input		SW1_I ;			// スイッチ入力
	output	LED1_O ;			// LED出力
	
//****************** 動L述 ******************//
// _ョを記述す

	assign	LED1_O = !SW1_I ;		
	
//************************************//
// 未使用信号の定義

	input		CLK_I ;

	input		SW2_I ;			// スイッチ入力
	input		SW3_I ;			// スイッチ入力
	input		SW4_I ;			// スイッチ入力

	output	LED2_O ;			// LED出力
	output	LED3_O ;			// LED出力
	output	LED4_O ;			// LED出力
	output	[4:1]	DP_OEN ;
	output	[8:1]	DP_O ;
	input						GPIN ;
	output	[15:1] GPIO ;
	output					TxD ;
	input						RxD ;
	
	assign	LED2_O = !SW2_I ;
	assign	LED3_O = !SW3_I ;
	assign	LED4_O = !SW4_I ;
	assign	DP_OEN = { !SW4_I, !SW3_I, !SW2_I, !SW1_I } ;
	assign	DP_O	 = {8{GPIN}};
	assign	GPIO   = {15{CLK_I}};
	assign	TxD = RxD ;

endmodule			// モジュール宣言の終了を示す

//************************************//


ポートの定義とか、そのへんはリソース定義みたいなもんですね。
で、LEDにつながってるoutputに出力すればLEDが点灯するんでしょう。
SWはスイッチで、inputになっている
後半の式が並んでるところがロジックと思われる。
問題は、上から順に動くんじゃなくて、全部の行が同時に動く。
(行レベル並列処理)

LED2_O=!SW2_I

ってのは、SW2_Iの値を反転してLED2_Oに出力している


しかし、なんで反転しないといかんのだろう( ´Д`)
↑初心者すぐる